Madalyonun adil olup olmadığını kontrol etme


9

Aşağıdaki soru bir arkadaşım tarafından soruldu. Ona yardım edemedim ama umarım birisi bana açıklayabilir. Benzer bir örnek bulamadım.Herhangi bir yardım ve açıklama için teşekkürler.

S: 100 madeni para atma deneyinin sonuçları 0 = "Kuyruk" ve 1 = "Kafa" olarak kaydedilmiştir. Çıkış x, 0 uzunluğu ve 100 uzunluğu 1 olan bir dizidir. Ve x olarak 1-0-0 elde ettiğimiz sayı hesaplanır ve 20'dir (örn: x = (001001110100), 1-0-0 2 kez oluşur). Sence bu adil bir para mı?


1
Bu soru tam bir gerçek yaşam problemi gibi gelmiyor. Bu ödev mi?
Sextus Empiricus

1
Emin değilim. Belirttiğim gibi bana bir arkadaş tarafından soruldu. Ona yardım edemedim, ama hala bu tür bir sorunun nasıl çözüleceğini veya cevaplanacağını öğrenmek istiyorum. @ MartijnWeterings
Jimmy Dur

2
stats.stackexchange.com/questions/158490/… bu durumun tam bir hesabını içerir. Daha fazla bilgi için bkz. Stats.stackexchange.com/…
whuber

1
@JimmyDur Sorunun yorumu veya anlamı hakkında hiçbir fikriniz yok. Örneğin. Soruyu "Bunun adil bir para olduğunu mu düşünüyorsun?" Bu hileli bir soru gibi geliyor.
Sextus Empiricus

1
... Ancak, belirli bakış açılarından bu, bununla başa çıkmak için doğru bir yol olmayabilir ve biri Bayesci bir yaklaşım isteyebilir; Arka plan ve koşullar hakkında herhangi bir bilgi olmadan, herhangi bir hesaplama sadece matematik egzersizi olacaktır ve "bu adil bir madeni para mı?"
Sextus Empiricus

Yanıtlar:


14

Sorunu simülasyonla çözme

İlk denemem bunu bir bilgisayar üzerinde simüle etmek, bu da birçok adil parayı çok hızlı çevirebilir. Aşağıda bir milyon deneme içeren bir örnek yer almaktadır. Olay 'kaç kezX '1-0-0' düzeni n=100 jeton çevirileri 20 veya daha fazla 'kabaca her üç bin denemede bir gerçekleşir, bu yüzden gözlemlediğiniz şey (adil bir madeni para için) pek olası değildir.

Histrogramın simülasyon için olduğunu ve satırın aşağıda açıklanan tam hesaplama olduğunu unutmayın.

histogram

set.seed(1)

# number of trials
n <- 10^6

# flip coins
q <- matrix(rbinom(100*n, 1, 0.5),n)

# function to compute number of 100 patterns
npattern <- function(x) {
  sum((1-x[-c(99,100)])*(1-x[-c(1,100)])*x[-c(1,2)])
}

# apply function on data 
counts <- sapply(1:n, function(x) npattern(q[x,]))
hist(counts, freq = 0) 

# estimated probability
sum(counts>=20)/10^6
10^6/sum(counts>=20)

Sorunu kesin bir hesaplama ile çözme

Analitik bir yaklaşım için, 100 madeni para saygısında '20 veya daha fazla diziyi gözlemleme olasılığı' 1-0-0 ', 1 eksi 20 diziyi yapmak için 100'den fazla çevirmenin olması olasılığı' gerçeğini kullanabilirsiniz. . Bu, aşağıdaki adımlarda çözülmüştür:

'1-0-0' çevirme olasılığı için bekleme süresi

Dağıtım, fN,x=1(n), tam olarak bir dizi '1-0-0' elde edene kadar kaç kez çevirmeniz gerektiği aşağıdaki gibi hesaplanabilir:

Markov zinciri olarak '1-0-0' elde etmenin yollarını analiz edelim. Çevirme dizesinin sonekiyle açıklanan durumları izleriz: '1', '1-0' veya '1-0-0'. Örneğin, aşağıdaki sekiz döndürme 10101100'e sahipseniz, sırayla, aşağıdaki sekiz durumu geçtiniz: '1', '1-0', '1', '1-0', '1', '1', '1-0', '1-0-0' olarak adlandırıldı ve '1-0-0' değerine ulaşmak sekiz tur aldı. Her kapakta '1-0-0' durumuna ulaşmak için eşit olasılığınızın olmadığını unutmayın . Böylece bunu bir binom dağılımı olarak modelleyemezsiniz . Bunun yerine bir olasılık ağacını takip etmelisiniz. '1' durumu '1' ve '1-0', '1-0' durumu '1' ve '1-0-0' olabilir, ve '1-0-0' durumu emici bir durumdur. Aşağıdaki gibi yazabilirsiniz:

           number of flips
           1   2   3   4   5   6   7   8   9   ....   n

'1'        1   1   2   3   5   8  13  21  34   ....   F_n
'1-0'      0   1   1   2   3   5   8  13  21          F_{n-1}
'1-0-0'    0   0   1   2   4   7   12 20  33          sum_{x=1}^{n-2} F_{x}

ve bir ilk '1' yuvarladıktan sonra (1-0-0 '' düzenine ulaşma olasılığı ('0' durumuyla başlıyorsunuz, henüz bir kafa atmadınız) n döndürme, "1-0" durumunda olma olasılığının yarısı kadardır. n1 çevirir:

fNc,x=1(n)=Fn22n1

nerede Fi bu i-Fibonnaci sayısı. Koşulsuz olasılık bir toplamdır

fN,x=1(n)=k=1n20.5kfNc,x=1(1+(nk))=0.5nk=1n2Fk

Çevirme olasılığı için bekleme süresi k kez '1-0-0'

Bunu bir evrişim ile hesaplayabilirsiniz.

fN,x=k(n)=l=1nfN,x=1(l)fN,x=1(nl)

20 veya daha fazla '1-0-0' düzenini gözlemleme olasılığı elde edersiniz (madalyonun adil olduğu hipotezine dayanarak)

> # exact computation
> 1-Fx[20]
[1] 0.0003247105
> # estimated from simulation
> sum(counts>=20)/10^6
[1] 0.000337

Hesaplamak için R kodu:

# fibonacci numbers
fn <- c(1,1)
for (i in 3:99) {
  fn <- c(fn,fn[i-1]+fn[i-2])
}

# matrix to contain the probabilities
ps <- matrix(rep(0,101*33),33)

# waiting time probabilities to flip one pattern
ps[1,] <- c(0,0,cumsum(fn))/2^(c(1:101))

#convoluting to get the others
for (i in 2:33) {
  for (n in 3:101) {
     for (l in c(1:(n-2))) {
       ps[i,n] = ps[i,n] + ps[1,l]*ps[i-1,n-l]
     }  
  }
}

# cumulative probabilities to get x patterns in n flips
Fx <- 1-rowSums(ps[,1:100])

# probabilities to get x patterns in n flips
fx <- Fx[-1]-Fx[-33]

#plot in the previous histogram
lines(c(1:32)-0.5,fx)

Haksız paralar için hesaplama

Gözlemleme olasılığının yukarıdaki hesaplamasını genelleştirebiliriz x kalıplar n '1 = kafa' olasılığı olduğunda p ve döndürmeler bağımsızdır.

Şimdi Fibonacci sayılarının genellemesini kullanıyoruz:

Fn(x)={1Eğer n=1xEğer n=2x(Fn-1+Fn-2)Eğer n>2

olasılıklar şu şekildedir:

fN-c,x=1,p(n)=(1-p)n-1Fn-2((1-p)-1-1)

ve

fN,x=1,p(n)=k=1n2p(1p)k1fNc,x=1,p(1+nk)=p(1p)n1k=1n2Fk((1p)11)

Bunu çizdiğimizde şunları elde edersiniz:

farklı p

Bu nedenle, p değeri 0.0003247 adil bir para için küçük olsa da, farklı haksız paralar için çok daha iyi olmadığını (sadece tek bir sipariş) not etmeliyiz. İhtimal oranı, ya da Bayes faktörü , yaklaşık 11 olduğu zaman sıfır hipotezi (p=0.5) alternatif hipotez ile karşılaştırılır p=0.33. Bu, arka oran oranının , önceki oran oranından sadece on kat daha yüksek olduğu anlamına gelir .

Bu yüzden deneyden önce madalyonun olası adaletsiz olduğunu düşündüyseniz, o zaman hala madalyonun olası adaletsiz olduğunu düşünmelisiniz.


Bozuk para pheads=ptails ancak '1-0-0' olaylarına ilişkin haksızlık

Kişi, kafa ve kuyruk sayısını sayarak adil bir madeni para olasılığını test edebilir ve bu gözlemleri modellemek ve gözlemin özel olup olmadığını test etmek için bir binom dağılımı kullanabilir.

Bununla birlikte, madalyonun ortalama olarak eşit sayıda kafa ve kuyruk çevirmesi olabilir, ancak belirli desenlerle ilgili adil değildir. Örneğin, madalyonun, madeni para çevirmeyi başarmak için bazı korelasyonları olabilir (Madalyonun metalinin içindeki boşluklar ile bir kum saati gibi kumla doldurulmuş, madeni parayı yükleyen bir kum saati gibi akacak bir mekanizma hayal ediyorum. önceki tarafla aynı tarafa düşme olasılığı daha yüksektir).

İlk jeton çevirme eşit olasılık başları ve kuyrukları olsun ve sonraki dönüşler olasılıkla pönceki kapakla aynı taraf. Daha sonra bu yazının başlangıcına benzer bir simülasyon, '1-0-0' şablonunun 20'yi aşma sayısı için aşağıdaki olasılıkları verecektir:

ilişkili para

'1-0-0' modelini (etrafta bir yerde) gözlemleme olasılığını daha da arttırmanın mümkün olduğunu görebilirsiniz. p=0.45negatif korelasyonu olan bir bozuk para), ancak daha dramatik olan, kişinin '1-0-0' modelini saptırma olasılığını azaltabileceğidir. Düşük içinpbir kafadan sonra birçok kez kuyruk alırsınız, '1-0-0' deseninin ilk '1-0' kısmıdır, ancak arka arkaya '0-0' kısmını arka arkaya iki kuyruk almazsınız. Desen. Bunun tersi yüksekler için doğrudurp değerler.

# number of trials
set.seed(1)
n <- 10^6

p <- seq(0.3,0.6,0.02)
np <- length(p)
mcounts <- matrix(rep(0,33*np),33)

pb <- txtProgressBar(title = "progress bar", min = 0,
                     max = np, style=3)
for (i in 1:np) {
  # flip first coins
  qfirst <- matrix(rbinom(n, 1, 0.5),n)*2-1
  # flip the changes of the sign of the coin
  qrest <- matrix(rbinom(99*n, 1, p[i]),n)*2-1
  # determining the sign of the coins
  qprod <- t(sapply(1:n, function(x) qfirst[x]*cumprod(qrest[x,])))
  # representing in terms of 1s and 0s
  qcoins <- cbind(qfirst,qprod)*0.5+0.5
  counts <- sapply(1:n, function(x) npattern(qcoins[x,]))

  mcounts[,i] <- sapply(1:33, function(x) sum(counts==x))
  setTxtProgressBar(pb, i)
}
close(pb)

plot(p,colSums(mcounts[c(20:33),]),
     type="l", xlab="p same flip", ylab="counts/million trials", 
     main="observation of 20 or more times '1-0-0' pattern \n for coin with correlated flips")
points(p,colSums(mcounts[c(20:33),]))

Matematiğin istatistiklerde kullanımı

Yukarıdakilerin hepsi iyi ama soruya doğrudan bir cevap değil

"bunun adil bir para olduğunu mu düşünüyorsun?"

Bu soruyu cevaplamak için yukarıdaki matematik kullanılabilir ancak kişi önce durumu, hedefleri, adalet tanımını vb. Çok iyi tanımlamalıdır. açık soru.

Açık bir soru, '1-0-0' modelini neden ve nasıl aradığımızdır.

  • Örneğin, belki de bu model, soruşturma yapılmadan önce kararlaştırılan bir hedef değildi . Belki de verilerde 'göze çarpan' bir şeydi ve deneyden sonra dikkat çeken bir şeydi . Bu durumda, kişinin etkili bir şekilde çoklu karşılaştırmalar yaptığı düşünülmelidir .
  • Başka bir konu, yukarıda hesaplanan olasılıkın bir p-değeri olmasıdır. Bir p-değerinin anlamı dikkatle ele alınmalıdır. Öyle değil sikke adil olma olasılığı. Bunun yerine, madeni para adil ise belirli bir sonucu gözlemleme olasılığıdır . Kişinin, madeni paraların adilliğinin bir miktar dağılımını bildiği veya makul bir varsayımda bulunabileceği bir ortam varsa, bunu dikkate alabilir ve Bayesci bir ifade kullanabilir .
  • Adil olan, haksız olan nedir. Sonunda, yeterli denemeler göz önüne alındığında, biraz ufak bir haksızlık bulabilir. Ancak konuyla alakalı mı ve böyle bir arama taraflı değil mi? Sıkça yaklaşan bir yaklaşıma bağlı kaldığımızda, o zaman yukarıda bir jeton fuarı olarak düşündüğümüz bir sınır tanımlamak gerekir (bazı ilgili etki büyüklüğü). Daha sonra madalyonun adil olup olmadığına karar vermek için iki tek taraflı t-testine benzer bir şey kullanılabilir ('1-0-0' deseni ile ilgili olarak).

1
Neden MLE aracılığıyla kapalı bir form çözümü takip etmiyorsunuz?
Digio

Yapmıyorum, sadece merak ediyorum. değil mip^ML=argmaxp[P(X1,...,Xn|p,n)] ile XBinomial(n,p) ve bir güven aralığı p^MLgeçerli bir cevap ver, @whuber?
Digio

Bu kapsamlı cevap için teşekkürler Martijn, ikinci yaklaşımı gerçekten çok seviyorum. Düşüncelerim daha doğrudan bir çözüm yolundaydı: tahminptek bir Binom veya çoklu Bernoulli dağılımının parametresi olarak. O zaman olasılık güven aralığıp.5 içermiyorsa, madalyonun önyargılı olduğunu söyleyebiliriz.
Digio

Örneğin, X={0,0,1,0,0,1,1,1,0,1,0,0}, anlıyoruz p^=xn=512=0.42 hata payı ile 1.96p^(1p^)n=0.28. Dan beri0.42+0.28<0.50, madalyonun önyargısız olmadığı sonucuna varabiliriz (% 5 anlamlılık düzeyinde).
Digio

3
@FrankHarrell, sorun kurulumunda, çevirmelerin ilişkisiz olduğunu düşündüren hiçbir şey yok. Sorun kurulumu bilgi ile nispeten zayıftır. Ters çevirmenin korelasyonuna giren örneğim sadece sorunun genişliğini kapsamak içindir. Bunun belirten değilim olduğunu cevap vermek yol. Ancak birisinin (muhtemelen OP) DNA dizileri veya korelasyon olasılığının daha anlamlı olduğu başka bir problem kurulumu üzerinde araştırma yaptığını söyleyin, o zaman bunun nasıl ortaya çıkabileceğine dair bir örneği var.
Sextus Empiricus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.