Thống kê xác thực máy đánh bạc


8

Vấn đề là chính phủ muốn đóng roulette điện tử và họ cho rằng roulette thất bại trong thử nghiệm thống kê.

Xin lỗi cho ngôn ngữ của tôi nhưng điều này được dịch từ luật tiếng Slovenia càng tốt càng tốt các yêu cầu chính thức (theo luật) là:

  • tần suất của mỗi sự kiện không được khác với tần suất dự kiến ​​quá 3 sigma
  • kiểm tra chi bình phương của phân phối bình thường phải nằm trong mức rủi ro 0,025
  • kiểm tra tương quan liên tiếp phải vượt qua 3 bài kiểm tra sigma và kiểm tra bình phương

Tôi đã thử nghiệm 2 yêu cầu đầu tiên và chúng vượt qua các thử nghiệm, nhưng tôi gặp vấn đề với việc hiểu yêu cầu thứ 3. (hãy nhớ rằng điều này được dịch và "tương quan liên tiếp" có thể là một cái gì đó khác)

Làm thế nào tôi nên kiểm tra yêu cầu thứ 3?

Dữ liệu nếu ai đó quan tâm:
http://pastebin.com/ffbSKpr1

EDIT: chi bình phương thất bại 2% thời gian (điều tôi mong đợi được dự kiến ​​do thực tế là alpha là 0,025) và thử nghiệm sigma3 thất bại 5% trong đó tôi dự đoán thất bại 9% cho 3sigma (có vẻ như tần số không được phân phối theo phân phối bình thường ngay cả đối với số ngẫu nhiên)

Tôi có thể không hiểu chính xác luật này, nhưng gần như 0% xác suất vượt qua bài kiểm tra 3sigma cho tất cả các vectơ tự tương quan, vì xác suất 9% là thất bại trong một lần chạy và 2,5 cho bài kiểm tra bình phương.

Mã Python:

from math import sqrt
from itertools import *
import random

#uncoment for python 2.x 
    #zip = izip 
    #range = xrange


#with open("rng.txt","r") as wr:
#   n = [int(i) for i in wr]
n = [random.randint(0,36) for i in range(44000)] 


def get_freq(n):
    r=[0 for i in range(37)]
    for i in n:
        r[i] += 1
    return r

def trisigmatest(freq):
    Ef = 1.0*sum(freq)/37
    sigma = sqrt(sum(i**2 for i in freq)/37-Ef**2)
    return all((abs(i - Ef )< sigma*3) for i in freq)


def chiquaretest(freq):
    Ef = 1.0*sum(freq)/37
    chi2 = sum((i-Ef)**2 / Ef for i in freq)
    # values are from http://itl.nist.gov/div898/handbook/eda/section3/eda3674.htm
    # (EDIT) I recaluclated these valuse from inverse cdf chi2 
    # distribution for interval (0.025/2,1-0.025/2) (alpha = 0.025)
    return 20.4441 < chi2 < 58.8954   


#whitout autocorelation  
gf = get_freq(n)
if not trisigmatest(gf):
    print("failed")
    raise
if not chiquaretest(gf):
    print("failed")
    raise


actests = 1000
trifailed = 0;
chifailed = 0;
for i in range(1,actests + 1):
    f=((b-a+37) % 37 for (a,b) in zip(n,n[i:]))
    gf = get_freq(f)
    if not trisigmatest(gf):
        trifailed += 1;
    if not chiquaretest(gf):
        chifailed += 1;
print("trisigmatest failed ", 1.0 * trifailed / actests )
print("chiquaretest failed ", 1.0 * chifailed / actests )

3
dober dan! Bạn có biết luật chính thức được thiết kế cho roulette hoặc cho một số thiết bị đánh bạc khác không? (máy đánh bạc, bài xì phé, v.v.) Yêu cầu thứ ba nghe có vẻ như tự tương quan hoặc có thể được kiểm tra bằng bài kiểm tra Wald-Wolfowitz, v.v.
shabbychef

Nó được thiết kế cho thiết bị đánh bạc nói chung. Liên kết cho pháp luật (bằng ngôn ngữ sagle) có tại unpis.gov.si/fileadmin/unpis.gov.si/pageuploads/zakonodaja/ ((đoạn 6)
ralu

Mẹ chồng tôi là người Hindi, nhưng tôi không nghĩ bà có thể dịch tốt điều này. Có lẽ bài kiểm tra mà họ đề cập là tự động trả lại tiền cho một con bạc luôn chơi số 17 chẳng hạn. (và lặp lại cho mỗi số?) Có thể chọc vào trong en.wikipedia.org/wiki/Diehard_tests cũng sẽ được hướng dẫn.
shabbychef

Có lẽ những gì họ đang yêu cầu là một hồi quy trễ thời gian, nghĩa là - số trước có dự đoán số tiếp theo không?
russellpierce

Câu trả lời:


2

Đối với một trò chơi công bằng liên tiếp chơi nên độc lập. Có vẻ như họ đang yêu cầu bạn thực hiện một bài kiểm tra mà kết quả liên tiếp không được thông minh. Bạn có thể làm điều này bằng cách ghép dữ liệu cho là kết quả đầu tiên . Sau đó, bạn có thể tạo thành cặp distnct , . Tính hệ số tương quan pearson khác 0 (nếu dữ liệu là liên tục hoặc thậm chí là một bộ số nguyên). Nếu dữ liệu là cho thua / thắng, bạn có thể kiểm tra tính độc lập trong bảng thu được bằng cách sử dụng các số đếm cho và . Trong trường hợp nàyR1,R2,...,R2n2nn(R1,R2)(R3,R4),...,(R2n1,R2n)0/12×2(0,0),(0,1),(1,0)(1,1)0/1 bài kiểm tra chạy của Wald và Wofowitz được đề xuất ở trên cũng có thể được sử dụng. Cách nó được mô tả trong quy tắc có vẻ như họ muốn bạn xây dựng khoảng tin cậy cho mối tương quan với nửa băng thông bằng . Bạn sẽ vượt qua nếu được chứa trong khoảng. Những bài kiểm tra dường như là một chút quá dễ dàng để vượt qua mặc dù.3σ0

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.