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 )
Jawaban:
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 2n hasil. Maka Anda bisa membentukn pasangan distnct
(R1,R2) , (R3,R4),...,(R2n−1,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/1 tes 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 jika0 terkandung dalam interval. Tes-tes ini tampaknya agak terlalu mudah untuk dilewati.
sumber