동전이 공정한지 확인


9

친구로부터 다음과 같은 질문을 받았습니다. 나는 그녀를 도울 수 없었지만 누군가 나에게 설명 할 수 있기를 바랍니다. 비슷한 예를 찾을 수 없습니다. 도움과 설명을 주셔서 감사합니다.

Q : 100 번의 코인 던지기 실험 결과는 0 = "Tail"및 1 = "Head"로 기록됩니다. 출력 x는 0과 길이 100의 1입니다. x에서 1-0-0을 얻는 횟수는 20으로 계산됩니다 (예 : x = (001001110100 인 경우), 1-0-0 2 회 발생). 이것이 공정한 동전이라고 생각하십니까?


1
이 질문은 정확한 실제 문제처럼 들리지 않습니다. 숙제입니까?
Sextus Empiricus

1
확실하지 않습니다. 내가 지적했듯이 친구가 나에게 물었다. 나는 그녀를 도울 수 없었다,하지만, 난 여전히 해결 또는 질문이 종류에 대답하는 방법을 배우고 싶은 @ MartijnWeterings을.를
지미 지속에게

2
stats.stackexchange.com/questions/158490/… 에는 상황에 대한 완전한 설명이 들어 있습니다. 자세한 내용은 stats.stackexchange.com/…
whuber를

1
@JimmyDur 당신은 질문의 해석이나 의미에 대해 전혀 모른다. 예를 들어. "이것이 공정한 동전이라고 생각합니까?" 이것은 트릭 질문처럼 들립니다.
Sextus Empiricus

1
... 그러나, 특정 관점에서, 이것은 그것을 다루는 올바른 방법이 아닐 수 있으며, 예를 들어 동전의 공정성에 대한 사전 확률 분포와 같은 것을 알고 있다면 베이지안 접근법을 원할 수 있습니다. 배경과 환경에 대한 지식이 없으면 계산은 수학 연습 일 뿐이며 "이것이 공정한 동전이라고 생각합니까?"라는 명백한 질문에 대한 답은 아닙니다.
Sextus Empiricus

답변:


14

시뮬레이션으로 문제 해결

첫 번째 시도는 컴퓨터에서 이것을 시뮬레이션하는 것인데, 많은 공정한 동전을 매우 빠르게 뒤집을 수 있습니다. 아래는 하나의 마일리 온 시험 예제입니다. 이벤트 '그 횟수X 패턴 '1-0-0'은 n=100 동전 뒤집기는 20 번 이상입니다. '약 3 천 번의 시험마다 대략 발생하므로 관찰 한 것은 (공평한 동전) 가능성이 거의 없습니다.

히스토그램은 시뮬레이션을위한 것이고 선은 아래에 더 자세히 설명 된 정확한 계산입니다.

히스토그램

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)

정확한 계산으로 문제 해결

분석 접근법 의 경우 '100 코인 플립에서 20 개 이상의 시퀀스'1-0-0 '을 관찰 할 확률이 1에서 20 시퀀스를 만드는 데 100 번 이상 플립을 수행 할 확률과 같다는 사실을 사용할 수 있습니다. . 이것은 다음 단계에서 해결됩니다.

'1-0-0'이 뒤집힐 가능성을 기다리는 시간

분포 fN,x=1(n), 정확히 하나의 시퀀스 '1-0-0'을 얻을 때까지 뒤집어 야하는 횟수 중 다음과 같이 계산할 수 있습니다.

Markov 체인으로 '1-0-0'에 도달하는 방법을 분석해 봅시다. 플립 문자열의 접미사 '1', '1-0'또는 '1-0-0'으로 설명 된 상태를 따릅니다. 예를 들어 다음과 같은 8 개의 플립 10101100이있는 경우 '1', '1-0', '1', '1-0', '1', '1', '1-0', '1-0-0'그리고 '1-0-0'에 도달하기 위해 8 번의 플립이 필요했습니다. 모든 플립에서 상태 '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 '으로 시작) 패턴'1-0-0 '에 도달 할 확률 n 뒤집기는 내 '1-0'상태에있을 확률의 절반입니다 n1 뒤집기 :

fNc,x=1(n)=Fn22n1

어디 Fi 입니다 i피보나치 번호. 무조건 확률은 합입니다

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

뒤집을 확률을 기다리는 시간 k 시간 '1-0-0'

이것은 컨벌루션으로 계산할 수 있습니다.

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)

불공정 동전 계산

관찰 할 확률의 위 계산을 일반화 할 수 있습니다 x 패턴 n '1 = head'의 확률이 p 플립은 독립적입니다.

이제 피보나치 수의 일반화를 사용합니다.

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의 경우 p- 값이 작지만 다른 불공평 한 동전의 경우 p- 값이 훨씬 우수하지는 않습니다 (단일 주문 만). 귀무 가설 이 다음과 같은 경우 우도 비율 또는 Bayes factor 는 약 11입니다.p=0.5)을 대립 가설과 비교 p=0.33. 이는 사후 배당률 이 이전 배당률보다 10 배만 높다는 것을 의미합니다 .

따라서 실험 전에 동전이 불공평하지 않다고 생각했다면 이제 동전이 불공평하다고 생각해야합니다.


와 동전 pheads=ptails '1-0-0'발생에 대한 불공평

머리와 꼬리의 수를 세어 공정한 코인의 확률을 훨씬 쉽게 테스트하고 이항 분포를 사용하여 이러한 관측치를 모델링하고 관측치가 특별한 지 여부를 테스트 할 수 있습니다.

그러나 동전이 평균적으로 같은 수의 머리와 꼬리를 내리고 있지만 특정 패턴에 대해서는 공평하지 않을 수 있습니다. 예를 들어, 동전은 동전 뒤집기의 성공과 약간의 상관 관계가있을 수 있습니다 (저는 동전으로 채워진 모래 동전으로 모래가 가득 찬 모래 동전으로 채워진 구멍이있는 메커니즘을 상상합니다) 이전 쪽과 같은쪽에 더 떨어질 가능성이 있습니다).

첫 번째 코인 플립은 확률이 같은 머리와 꼬리가되고 후속 플립은 확률이 같습니다 p이전 플립과 같은면. 그런 다음이 게시물의 시작과 비슷한 시뮬레이션을 통해 패턴 '1-0-0'이 20을 초과하는 횟수에 대해 다음과 같은 확률을 얻을 수 있습니다.

상관 된 동전

'1-0-0'패턴을 관찰 할 가능성이 더 높다는 것을 알 수 있습니다. p=0.45음의 상관 관계가있는 동전), 그러나 더 극적인 것은 '1-0-0'패턴을 극복 할 가능성이 훨씬 적다는 것입니다. 낮은p'1-0-0'패턴의 첫 번째 '1-0'부분 인 머리 뒤에 여러 번 꼬리를 얻지 만 행의 '0-0'부분에서 두 개의 꼬리를 자주 얻지는 않습니다. 무늬. 그 반대는 높음p 가치.

# 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'패턴을 찾고 있는지입니다.

  • 예를 들어이 패턴은 대상이 아니 었으므로 조사 수행 하기 전에 결정되었습니다 . 어쩌면 그것은 데이터에서 '돋보이는'것일 수도 있고 실험 후에 주목을 얻은 것일 수도 있습니다. 이 경우 효과적으로 여러 비교를 하고 있다는 것을 고려해야합니다 .
  • 다른 문제는 위에서 계산 된 확률이 p- 값이라는 것입니다. p- 값의 의미는 신중하게 고려해야합니다. 동전이 공정 할 확률 은 아닙니다 . 대신 동전이 공정 하면 특정 결과를 관찰 할 가능성이 있습니다 . 동전의 공정성 분포를 알고 있거나 합리적인 가정을 할 수있는 환경이있는 경우이를 고려하여 베이지안 표현을 사용할 수 있습니다 .
  • 공정하고 불공평 한 것 결국 충분한 시련을 겪으면 약간의 불공평 함을 발견 할 수 있습니다. 그러나 관련성이 있고 그러한 검색이 편향되지 않습니까? 우리가 빈번한 접근 방식을 고수 할 때, 우리는 코인 페어 (일부 관련된 효과 크기)를 고려하는 경계와 같은 것을 설명해야합니다. 그런 다음 동전이 공정한지 여부를 결정하기 위해 ( '1-0-0'패턴과 관련하여) 두 개의 단면 t- 검정 과 비슷한 것을 사용할 수 있습니다 .

1
MLE를 통해 폐쇄 형 솔루션을 추구하지 않겠습니까?
Digio

나는 궁금하다. 하지 않을p^ML=argmaxp[P(X1,...,Xn|p,n)]XBinomial(n,p) 에 대한 신뢰 구간 p^ML유효한 답변을 @whuber?
Digio

이 철저한 답변 Martijn에 감사드립니다. 저는 두 번째 접근 방식이 정말 좋습니다. 내 생각은보다 직접적인 해결책의 선을 따라 있었다 : 견적p단일 이항 분포 또는 여러 Bernoulli 분포의 모수로. 그렇다면 확률의 신뢰 구간이p.5를 포함하지 않으면 동전이 바이어스된다고 말할 수 있습니다.
Digio

예를 들어 X={0,0,1,0,0,1,1,1,0,1,0,0}우리는 얻는다 p^=xn=512=0.42 오차가있다 1.96p^(1p^)n=0.28. 이후0.42+0.28<0.50, 우리는 동전이 편중되지 않았다고 결론을 내릴 수 있습니다 (5 % 유의 수준에서).
Digio

3
@FrankHarrell 문제 설정에 플립이 서로 관련이 없다고 생각하게하는 것도 없습니다. 문제 설정은 정보가 비교적 부족합니다. 플립의 상관 관계에 관한 나의 예는 질문의 광범위 성을 다루기위한 것입니다. 나는이 것을 주장하고 있지 않다 입니다 그것을 대답하는 방법. 그러나 누군가 (아마 OP)가 DNA 서열 또는 상관 가능성이 더 이해가되는 다른 문제 설정에 대한 연구를하고 있다고 말하면 어떻게 될 수 있는지에 대한 예가 있습니다.
Sextus Empiricus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.