Statistik untuk validasi mesin judi

8

Masalahnya adalah pemerintah ingin menutup roulette elektronik dan mereka mengklaim bahwa roulette gagal dalam uji statistik.

Maaf untuk bahasa saya tapi ini diterjemahkan dari hukum Slovenia sebaik mungkin. Persyaratan resmi (menurut hukum) adalah:

  • frekuensi setiap peristiwa tidak boleh berbeda dari frekuensi yang diharapkan lebih dari 3 sigma
  • uji chi square distribusi normal harus berada dalam tingkat risiko 0,025
  • uji korelasi berturut-turut harus lulus uji 3 sigma dan uji chi kuadrat

Saya telah menguji 2 persyaratan pertama dan mereka lulus tes, tetapi saya memiliki masalah dalam memahami persyaratan ke-3. (perlu diingat bahwa ini diterjemahkan dan "korelasi berurutan" dapat menjadi sesuatu yang lain)

Bagaimana saya harus menguji persyaratan ke-3?

Data jika seseorang tertarik:
http://pastebin.com/ffbSKpr1

EDIT: chi kuadrat gagal 2% dari waktu (apa yang saya harapkan yang diharapkan karena fakta bahwa alpha adalah 0,025) dan tes sigma3 gagal 5% di mana saya mengharapkan kegagalan 9% untuk 3sigma (sepertinya frekuensi tidak didistribusikan sesuai dengan distribusi normal bahkan untuk nomor acak)

Saya mungkin tidak memahami undang-undang ini dengan benar, tetapi hampir 0% kemungkinan lulus uji 3sigma untuk semua vektor autokorelasi, karena 9% kemungkinan gagal dalam sekali jalan dan 2,5 untuk uji chi kuadrat.

Kode 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 )
ralu
sumber
3
dober dan! apakah Anda tahu jika hukum resmi dirancang untuk roulette atau untuk beberapa perangkat judi lainnya? (mesin slot, poker, dll) Persyaratan ketiga terdengar seperti autokorelasi, atau bisa diuji dengan uji Wald-Wolfowitz, dll.
shabbychef
Ini dirancang untuk perangkat judi umum. Tautan untuk hukum (dalam bahasa slovene ) ada di unpis.gov.si/fileadmin/unpis.gov.si/pageuploads/zakonodaja/… (paragraf 6)
ralu
Ibu mertua saya adalah orang Slovenia, tetapi saya tidak berpikir dia bisa menerjemahkan ini dengan sangat baik. Mungkin ujian yang mereka rujuk adalah autokorelasi pengembalian untuk seorang penjudi yang selalu memainkan nomor 17, misalnya. (dan ulangi untuk setiap nomor?) Mungkin mencari-cari di en.wikipedia.org/wiki/Diehard_tests juga akan menjadi pelajaran.
shabbychef
Mungkin yang mereka minta adalah kemunduran waktu, yaitu - apakah angka sebelumnya memprediksi angka selanjutnya?
russellpierce

Jawaban:

2

Untuk permainan yang adil, permainan berturut-turut harus independen. Sepertinya mereka meminta Anda untuk melakukan tes yang hasilnya berturut-turut tidak berkorelasi. Anda bisa melakukan ini dengan memasangkan data biarkanR1,R2,...,R2n Jadilah yang pertama 2nhasil. Maka Anda bisa membentukn pasangan distnct (R1,R2), (R3,R4),...,(R2n1,R2n). Hitung koefisien korelasi pearson berbeda dari nol (jika data kontinu atau bahkan satu set bilangan bulat). Jika datanya0/1 untuk kalah / menang, Anda dapat menguji independensi dalam 2×2 tabel diperoleh dengan menggunakan jumlah untuk (0,0),(0,1),(1,0) dan (1,1). Dalam hal ini0/1tes berjalan Wald dan Wofowitz yang disarankan di atas juga dapat digunakan. Cara itu dijelaskan dalam aturan sepertinya mereka ingin Anda membangun interval kepercayaan untuk korelasi dengan setengah lebar sama dengan3σ. Anda akan lulus jika0terkandung dalam interval. Tes-tes ini tampaknya agak terlalu mudah untuk dilewati.

Michael R. Chernick
sumber