Перевірка, чи монета справедлива


9

Наступне питання мені поставив друг. Я не міг їй допомогти, але сподіваюся, хтось може мені це пояснити. Я не міг знайти жодного подібного прикладу. Дякую за будь-яку допомогу та пояснення.

Питання: Результати 100 експериментів з киданням монет записуються як 0 = "Хвіст" і 1 = "Голова". Вихід x - це рядок 0 і 1 довжиною 100. І обчислюється кількість разів, коли ми отримуємо 1-0-0 в x, і це 20 (наприклад: якщо x = (001001110100), 1-0-0 виникає 2 рази). Як ви вважаєте, це справедлива монета?


1
Це питання не схоже на точну проблему в реальному житті. Це домашнє завдання?
Секст

1
Я не впевнений. Як я вказав, це запитав мене друг. Я не міг їй допомогти, але все ж хочу навчитися вирішувати або відповідати на таке питання. @ MartijnWeterings
Jimmy Dur

2
stats.stackexchange.com/questions/158490/… містить досить повний облік ситуації. Докладніше див. Stats.stackexchange.com/…
whuber

1
@JimmyDur Ви не маєте жодного уявлення про тлумачення чи значення питання. Наприклад. Ви формулюєте запитання так: "Ви думаєте, це справедлива монета?". Це звучить як хитромудре питання.
Секст

1
... Однак, з певної точки зору, це може бути не правильним способом вирішення цього питання, і можна бажати байєсівського підходу, наприклад, якщо хтось знає щось подібне до попереднього розподілу ймовірності справедливості монет. Без будь-якого знання про передумови та обставини будь-які обчислення будуть просто вправою з математики, а не відповіддю на ваше чітке запитання "чи вважаєте ви, що це чесна монета?".
Секст

Відповіді:


14

Розв’язування задачі за допомогою моделювання

Моєю першою спробою було б імітувати це на комп’ютері, який може дуже швидко перевернути багато ярмарок. Нижче наводиться приклад з мільйонними випробуваннями. Подія ", коли кількість разів на шаблоні" 1-0-0 "відбувається в монет, перевертається 20 і більше", відбувається приблизно раз на три тисячі випробувань, тому те, що ви спостерігали, не дуже ймовірно (для справедливої монета).Xn=100

Зауважте, що гістрограма призначена для моделювання, а лінія - точне обчислення, пояснене далі нижче.

гістограма

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)

Розв’язання задачі точним обчисленням

Для аналітичного підходу ви можете використовувати той факт, що "ймовірність спостерігати 20 або більше послідовностей" 1-0-0 "на 100 монетних переворотах дорівнює 1 мінус ймовірності, що для створення 20 послідовностей потрібно більше 100 фліпів" . Це вирішується в наступних кроках:

Час очікування ймовірності перевернути "1-0-0"

Розподіл , скільки разів вам потрібно перевернути, доки ви отримаєте рівно одну послідовність '1-0-0', можна обчислити так:fN,x=1(n)

Проаналізуємо шляхи проїзду до "1-0-0" як ланцюжок Маркова. Ми слідуємо за станами, описаними суфіксом рядка фліпсів: '1', '1-0' або '1-0-0'. Наприклад, якщо у вас є наступні вісім фліпів 10101100, тоді ви пройшли, для того, наступні вісім станів: '1', '1-0', '1', '1-0', '1', '1', "1-0", "1-0-0", і для отримання "1-0-0" знадобилося вісім переворотів. Зауважте, що ви не маєте однакової ймовірності досягти стану "1-0-0" у кожному руслі. Таким чином, ви не можете моделювати це як біноміальне розподіл . Натомість слід дотримуватися дерева ймовірностей. Стан '1' може перейти в '1' і '1-0', стан '1-0' може перейти в '1' і '1-0-0', а стан '1-0-0' є поглинаючим станом. Ви можете записати це як:

           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}

і ймовірність досягти шаблону "1-0-0", після прокатки першого "1" (ви починаєте зі стану "0", ще не перевернувши голівки), протягом переворотів - це вдвічі більше, ніж ймовірність знаходитись у стані "1-0" у межах відворотів:nn1

fNc,x=1(n)=Fn22n1

де - -те число Фібонначі. Неумовна ймовірність - це сумаFii

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

Час очікування ймовірності прогортання разів '1-0-0'k

Це ви можете обчислити за допомогою згортки.

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

ви отримаєте як ймовірність спостерігати 20 або більше моделей "1-0-0" (виходячи з гіпотези про справедливість монети)

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

Ось R-код для його обчислення:

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

Обчислення несправедливих монет

Ми можемо узагальнити вищенаведене обчислення ймовірності спостереження за візерунками в переворотах, коли ймовірність '1 = голова' і відвороти незалежні.xnp

Зараз ми використовуємо узагальнення чисел Фібоначчі:

Fn(x)={1if n=1xif n=2x(Fn1+Fn2)if n>2

ймовірності зараз такі:

fNc,x=1,p(n)=(1p)n1Fn2((1p)11)

і

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

Коли ми плануємо це, ви отримуєте:

різні с

Отже, хоча p-величина мала для справедливої ​​монети 0,0003247, ми мусимо відзначити, що вона не набагато краща (лише один порядок) для різних несправедливих монет. Коефіцієнт ймовірності, або коефіцієнт Байєса , становить близько 11, коли нульова гіпотеза ( ) порівнюється з альтернативною гіпотезою . Це означає, що коефіцієнт заднього шансу лише в десять разів перевищує показник попередніх шансів.p=0.5p=0.33

Таким чином, якщо ви перед експериментом вважали, що монета навряд чи несправедлива, то тепер вам все одно слід вважати монету навряд чи несправедливою.


Монета з але несправедливість щодо випадків "1-0-0"pheads=ptails

Можна набагато простіше перевірити ймовірність справедливої ​​монети, порахувавши кількість головок і хвостів і використати біноміальне розподіл для моделювання цих спостережень і перевірити, чи спостереження є конкретним чи ні.

Однак, можливо, монета перекидає, в середньому, рівну кількість головок і хвостів, але це не справедливо щодо певних зразків. Наприклад, монета може мати деяке співвідношення для наступних перевернень монети (я уявляю, якийсь механізм із порожнинами всередині металу монети є заповненим піском, який буде текти як пісочний годинник до протилежного кінця попереднього флігеля монети, який завантажує монету скоріше падати на ту ж сторону, що і попередня сторона).

Нехай перша монета перевертається рівними ймовірними головами та хвостами, а наступні обертання з вірогідністю тією ж стороною, що і фліп раніше. Тоді подібне моделювання, як початок цієї публікації, дасть наступні ймовірності для кількості разів, коли шаблон "1-0-0" перевищує 20:p

корельована монета

Ви можете бачити, що можна зробити так, що шанси спостерігати за схемою "1-0-0" (десь біля монета, яка має деяку негативну кореляцію), але більш драматичним є те, що можна зробити це набагато менше ймовірно, отримано схему "1-0-0". За низького рівня ви отримуєте багато разів хвости після головок, перша частина "1-0" шаблону "1-0-0", але ви не отримуєте так часто два хвости підряд "0-0" частина візерунка. Зворотне вірно для високих значень.p=0.45pp

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

Використання математики в статистиці

Сказане все добре, але це не є прямою відповіддю на питання

"ви думаєте, це справедлива монета?"

Щоб відповісти на це питання, можна скористатись математикою вище, але слід спочатку дуже добре описати ситуацію, цілі, визначення справедливості тощо. Без будь-якого знання про передумови та обставини будь-які обчислення будуть просто вправою з математики, а не відповіддю на чітке питання.

Одне відкрите запитання - чому і як ми шукаємо схему «1-0-0».

  • Наприклад, можливо, ця закономірність не була ціллю, про яку було вирішено ще до проведення розслідування. Можливо, це було просто щось, що «виділялося» в даних, і це було те, що привернуло увагу після експерименту. У цьому випадку потрібно враховувати, що ефективно проводити багато порівнянь .
  • Інше питання полягає в тому, що ймовірність, обчислена вище, є р-значенням. Значення р-значення потрібно ретельно враховувати. Це НЕ ймовірність того, що монета є справедливим. Натомість це ймовірність спостерігати певний результат, якщо монета справедлива. Якщо є середовище, в якому відомо деякий розподіл справедливості монет, або можна зробити обґрунтоване припущення, то можна врахувати це і використовувати байєсівський вираз .
  • Що справедливо, що несправедливо. Врешті-решт, отримавши достатньо випробувань, можна виявити крихітну дрібницю. Але чи це доречно і чи такий пошук не є упередженим? Коли ми дотримуємося частофілістського підходу, то слід описати щось на зразок межі, над якою ми вважаємо ярмарок монет (деякий відповідний розмір ефекту). Тоді можна було б скористатися чимось подібним до двостороннього тесту , щоб визначити, монета справедлива чи ні (стосовно шаблону '1-0-0').

1
Чому б не шукати рішення закритої форми через MLE?
Дігіо

Ні, я просто цікавий. Не буде з та довірчим інтервалом для зроби правильну відповідь, @whuber? p^ML=argmaxp[P(X1,...,Xn|p,n)]XBinomial(n,p)p^ML
Дігіо

Дякую за цю грунтовну відповідь Мартійн, мені дуже подобається другий підхід. Мої думки були узгоджені з більш прямим рішенням: оцініть як параметр одного біноміального або множинного розподілу Бернуллі. Тоді, якщо довірчий інтервал вірогідності не включає 0,5, тоді можна сказати, що монета упереджена. pp
Дігіо

Наприклад, для отримуємо з похибкою . А оскільки , можна зробити висновок, що монета не є упередженою (на рівні 5% значущості). X={0,0,1,0,0,1,1,1,0,1,0,0}p^=xn=512=0.421.96p^(1p^)n=0.280.42+0.28<0.50
Дігіо

3
@FrankHarrell також не має нічого в налаштуванні проблеми, що змушує нас думати, що фліпс не пов'язаний. Налаштування проблеми відносно погана з інформацією. Мій приклад, що входить у співвіднесення фліпсів, якраз для того, щоб висвітлити широке питання. Я не про те , що це є спосіб відповісти на нього. Але скажіть, що хтось (можливо, ОП) проводить дослідження послідовностей ДНК чи іншої установки проблеми, де можливість кореляції має більше сенсу, тоді вони мають приклад, як це могло виявитись.
Секст
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.