Розв’язування задачі за допомогою моделювання
Моєю першою спробою було б імітувати це на комп’ютері, який може дуже швидко перевернути багато ярмарок. Нижче наводиться приклад з мільйонними випробуваннями. Подія ", коли кількість разів на шаблоні" 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" у межах відворотів:nn−1
fNc,x=1(n)=Fn−22n−1
де - -те число Фібонначі. Неумовна ймовірність - це сумаFii
fN,x=1(n)=∑k=1n−20.5kfNc,x=1(1+(n−k))=0.5n∑k=1n−2Fk
Час очікування ймовірності прогортання разів '1-0-0'k
Це ви можете обчислити за допомогою згортки.
fN,x=k(n)=∑l=1nfN,x=1(l)fN,x=1(n−l)
ви отримаєте як ймовірність спостерігати 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)=⎧⎩⎨1xx(Fn−1+Fn−2)if n=1if n=2if n>2
ймовірності зараз такі:
fNc,x=1,p(n)=(1−p)n−1Fn−2((1−p)−1−1)
і
fN,x=1,p(n)=∑k=1n−2p(1−p)k−1fNc,x=1,p(1+n−k)=p(1−p)n−1∑k=1n−2Fk((1−p)−1−1)
Коли ми плануємо це, ви отримуєте:
Отже, хоча 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').