Sprawdzanie, czy moneta jest uczciwa

9

Przyjaciel zadał mi następujące pytanie. Nie mogłem jej pomóc, ale mam nadzieję, że ktoś mi to wyjaśni. Nie mogłem znaleźć podobnego przykładu. Dzięki za wszelką pomoc i wyjaśnienia.

P: Wyniki 100 eksperymentów rzucania monetą są rejestrowane jako 0 = „Ogon” i 1 = „Głowa”. Wyjściowy x jest łańcuchem zer i 1 o długości 100. A liczba razy, gdy otrzymujemy 1-0-0 w x jest obliczana i wynosi 20 (np .: if x = (001001110100), 1-0-0 występuje 2 razy). Czy uważasz, że to uczciwa moneta?

Jimmy Dur
źródło
1
To pytanie nie brzmi jak problem z prawdziwym życiem. Czy to zadanie domowe?
Sextus Empiricus
1
Nie jestem pewien. Jak już wspomniałem, przyjaciel zapytał mnie o to. Nie mogłem jej pomóc, ale nadal chcę się nauczyć, jak rozwiązać lub odpowiedzieć na tego rodzaju pytanie. @ MartijnWeterings
Jimmy Dur
2
stats.stackexchange.com/questions/158490/... zawiera dość pełny opis sytuacji. Aby uzyskać więcej informacji, zobacz stats.stackexchange.com/…
whuber
1
@ JimmyDur nie masz pojęcia o interpretacji lub znaczeniu pytania. Na przykład. Zadajesz pytanie jako „Czy uważasz, że to uczciwa moneta?”. To brzmi jak podchwytliwe pytanie.
Sextus Empiricus
1
... Jednak z pewnych punktów widzenia może to nie być właściwy sposób na poradzenie sobie z tym, i można chcieć podejścia bayesowskiego, np. Jeśli ktoś zna coś w rodzaju wcześniejszego rozkładu prawdopodobieństwa uczciwości monet. Bez znajomości tła i okoliczności obliczenia będą jedynie ćwiczeniami matematycznymi, a nie odpowiedzią na twoje wyraźne pytanie „czy uważasz, że to uczciwa moneta?”.
Sextus Empiricus

Odpowiedzi:

14

Rozwiązanie problemu przez symulację

Moją pierwszą próbą byłoby symulowanie tego na komputerze, który potrafi bardzo szybko rzucić wiele uczciwych monet. Poniżej znajduje się przykład z milionem prób. Zdarzenie „, w którym liczba wzorca„ 1-0-0 ”występuje w rzutach monetą, wynosi 20 lub więcej” występuje mniej więcej raz na trzy tysiące prób, więc to, co zaobserwowałeś, nie jest bardzo prawdopodobne (uczciwie moneta).Xn=100

Zauważ, że histrogram służy do symulacji, a linia jest dokładnym obliczeniem wyjaśnionym poniżej.

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)

Rozwiązanie problemu za pomocą dokładnych obliczeń

W przypadku podejścia analitycznego można wykorzystać fakt, że „prawdopodobieństwo zaobserwowania 20 lub więcej sekwencji„ 1-0-0 ”na 100 rzutów monetą jest równe 1 minus prawdopodobieństwo, że wykonanie więcej niż 100 rzutów zajmie więcej niż 100 rzutów” . Rozwiązano to w następujących krokach:

Czas oczekiwania na prawdopodobieństwo przewrócenia „1-0-0”

Dystrybucja, faN.,x=1(n), z ilu razy musisz przerzucić, dopóki nie otrzymasz dokładnie jednej sekwencji „1-0-0”, można obliczyć w następujący sposób:

Przeanalizujmy sposoby dotarcia do „1-0-0” jako łańcucha Markowa. Śledzimy stany opisane sufiksem ciągu flips: „1”, „1-0” lub „1-0-0”. Na przykład, jeśli masz następujące osiem rzutów 10101100, zdałeś kolejno następujące osiem stanów: „1”, „1-0”, „1”, „1-0”, „1”, „1”, „1-0”, „1-0-0”, a osiągnięcie „1-0-0” wymagało ośmiu rzutów. Pamiętaj, że nie ma jednakowego prawdopodobieństwa osiągnięcia stanu „1-0-0” przy każdym rzucie. Dlatego nie można modelować tego jako rozkładu dwumianowego . Zamiast tego powinieneś podążać za drzewem prawdopodobieństw. Stan „1” może przejść do „1” i „1-0”, stan „1-0” może przejść do „1” i „1-0-0”, a stan „1-0-0” jest stanem absorbującym. Możesz zapisać to jako:

           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}

i prawdopodobieństwo osiągnięcia wzoru „1-0-0”, po wyrzuceniu pierwszego „1” (zaczynasz od stanu „0”, nie odwracając jeszcze głowy), w ciągu n przewrócenie jest o połowę mniejsze niż prawdopodobieństwo, że znajdzie się w stanie „1-0” n-1 klapki:

faN.do,x=1(n)=fan-2)2)n-1

gdzie faja jest ja-ty numer Fibonnaci. Prawdopodobieństwo bezwarunkowe jest sumą

faN.,x=1(n)=k=1n-2)0,5kfaN.do,x=1(1+(n-k))=0,5nk=1n-2)fak

Czas oczekiwania na prawdopodobieństwo przewrócenia k razy „1-0-0”

Można to obliczyć za pomocą splotu.

faN.,x=k(n)=l=1nfaN.,x=1(l)faN.,x=1(n-l)

z prawdopodobieństwem zaobserwujesz 20 lub więcej wzorów „1-0-0” (w oparciu o hipotezę, że moneta jest uczciwa)

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

Oto kod R do jego obliczenia:

# 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)

Obliczanie nieuczciwych monet

Możemy uogólnić powyższe obliczenie prawdopodobieństwa zaobserwowania x wzory w n odwraca się, gdy prawdopodobieństwo „1 = głowa” wynosi p a klapki są niezależne.

Teraz używamy uogólnienia liczb Fibonacciego:

fan(x)={1gdyby n=1xgdyby n=2)x(fan-1+fan-2))gdyby n>2)

prawdopodobieństwo jest teraz następujące:

faN.do,x=1,p(n)=(1-p)n-1fan-2)((1-p)-1-1)

i

faN.,x=1,p(n)=k=1n-2)p(1-p)k-1faN.do,x=1,p(1+n-k)=p(1-p)n-1k=1n-2)fak((1-p)-1-1)

Kiedy knujemy to, otrzymujesz:

inny p

Chociaż wartość p jest niewielka dla uczciwej monety 0,0003247, musimy zauważyć, że nie jest ona znacznie lepsza (tylko pojedyncze zamówienie) dla różnych nieuczciwych monet. Współczynnik prawdopodobieństwa lub współczynnik Bayesa wynosi około 11, gdy hipoteza zerowa (p=0,5) porównuje się z hipotezą alternatywną p=0,33. Oznacza to, że tylny iloraz szans jest tylko dziesięć razy wyższy niż wcześniejszy iloraz szans.

Jeśli więc przed eksperymentem myślałeś, że moneta jest mało prawdopodobna, to teraz powinieneś nadal myśleć, że moneta jest nieprawdziwa.


Moneta z phmizares=ptzajals ale niesprawiedliwość w odniesieniu do zdarzeń „1-0-0”

O wiele łatwiej byłoby przetestować prawdopodobieństwo uczciwej monety, licząc liczbę głów i ogonów, i zastosować rozkład dwumianowy do modelowania tych obserwacji i sprawdzić, czy obserwacja jest szczególna, czy nie.

Może się jednak zdarzyć, że moneta przerzuca średnio taką samą liczbę głów i ogonów, ale nie jest sprawiedliwa w odniesieniu do niektórych wzorów. Na przykład moneta może mieć pewną korelację dla kolejnych rzutów monetą (wyobrażam sobie jakiś mechanizm z zagłębieniami wewnątrz metalu monety wypełnionymi piaskiem, który popłynie jak klepsydra w kierunku przeciwnego końca poprzedniego rzutu monetą, który ładuje monetę bardziej prawdopodobne, że upadną po tej samej stronie, co poprzednia strona).

Niech pierwsza moneta będzie równa prawdopodobieństwu głów i reszek, a kolejne rzuty są prawdopodobne pta sama strona, co wcześniej flip. Następnie podobna symulacja jak na początku tego postu da następujące prawdopodobieństwa, ile razy wzorzec „1-0-0” przekroczy 20:

skorelowana moneta

Widać, że można nieco zmniejszyć prawdopodobieństwo zaobserwowania wzoru „1-0-0” (gdzieś w pobliżu p=0,45moneta, która ma pewną ujemną korelację), ale bardziej dramatyczne jest to, że można znacznie zmniejszyć prawdopodobieństwo przestrzegania wzoru „1-0-0”. Za niskiepdostajesz wielokrotnie ogony za głowami, pierwszą część „1-0” wzoru „1-0-0”, ale nie dostajesz tak często dwóch ogonów z rzędu część „0-0” wzór. Odwrotnie jest w przypadku wysokichp wartości.

# 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),]))

Wykorzystanie matematyki w statystyce

Wszystko powyższe jest w porządku, ale nie jest to bezpośrednia odpowiedź na pytanie

„Czy uważasz, że to uczciwa moneta?”

Aby odpowiedzieć na to pytanie, można użyć powyższej matematyki, ale naprawdę należy najpierw bardzo dobrze opisać sytuację, cele, definicję uczciwości itp. Bez znajomości tła i okoliczności jakiekolwiek obliczenia będą jedynie ćwiczeniem matematycznym, a nie odpowiedzią na wyraźne pytanie.

Jedno otwarte pytanie brzmi: dlaczego i jak szukamy wzoru „1-0-0”.

  • Na przykład może ten wzór nie był celem, o którym zdecydowano przed przeprowadzeniem dochodzenia. Być może było to po prostu coś, co „wyróżniało się” w danych i przyciągnęło uwagę po eksperymencie. W takim przypadku należy wziąć pod uwagę, że skutecznie dokonuje się wielu porównań .
  • Inną kwestią jest to, że obliczone powyżej prawdopodobieństwo jest wartością p. Znaczenie wartości p należy dokładnie rozważyć. To nie prawdopodobieństwo, że moneta jest fair. Zamiast tego istnieje prawdopodobieństwo zaobserwowania określonego wyniku, jeśli moneta jest uczciwa. Jeśli ktoś ma otoczenie, w którym zna się pewną dystrybucję uczciwości monet, lub można przyjąć rozsądne założenie, wówczas można wziąć to pod uwagę i zastosować wyrażenie bayesowskie .
  • Co jest sprawiedliwe, a co niesprawiedliwe. W końcu, biorąc pod uwagę wystarczającą liczbę prób, można znaleźć odrobinę niesprawiedliwości. Ale czy jest to istotne i czy takie wyszukiwanie nie jest stronnicze? Trzymając się podejścia częstokroć, należy opisać coś w rodzaju granicy, powyżej której uważamy monetę za uczciwą (pewien odpowiedni rozmiar efektu). Następnie można zastosować coś podobnego do dwustronnego testu t , aby zdecydować, czy moneta jest uczciwa, czy nie (w odniesieniu do wzoru „1-0-0”).
Sextus Empiricus
źródło
1
Dlaczego nie szukać rozwiązania w formie zamkniętej za pośrednictwem MLE?
Digio,
Nie wiem, jestem po prostu ciekawa. Nie zrobiłbym tegop^M.L.=zarsolmzaxp[P.(X1,...,Xn|p,n)] z Xbjanomjazal(n,p) oraz przedział ufności dla p^M.L.udzielić poprawnej odpowiedzi, @whuber?
Digio,
Dzięki za tę dokładną odpowiedź Martijn, naprawdę podoba mi się drugie podejście. Moje myśli były podobne do bardziej bezpośredniego rozwiązania: oszacowaniapjako parametr pojedynczego dwumianowego lub wielu rozkładów Bernoulliego. Wtedy jeśli przedział ufności prawdopodobieństwapnie obejmuje .5, powiedzielibyśmy, że moneta jest stronnicza.
Digio,
Na przykład dla X={0,0,1,0,0,1,1,1,0,1,0,0}rozumiemy p^=xn=512=0,42 z marginesem błędu 1,96p^(1-p^)n=0,28. I odtąd0,42+0,28<0,50, możemy dojść do wniosku, że moneta nie jest stronnicza (na poziomie istotności 5%).
Digio,
3
@FrankHarrell ani w konfiguracji problemu nie ma niczego, co skłania nas do myślenia, że ​​przerzucenia są nieskorelowane. Konfiguracja problemu jest stosunkowo słaba z informacjami. Mój przykład, który dotyczy korelacji przewrotek, ma na celu wyjaśnienie szerokiego zakresu pytania. Ja nie stwierdzając, że to jest sposób na nie odpowiedzieć. Ale powiedz, że ktoś (być może OP) prowadzi badania nad sekwencjami DNA lub innymi ustawieniami problemów, w których możliwość korelacji ma większy sens, to ma przykład, jak to może się okazać.
Sextus Empiricus