Bernoulli 시행에서 "성공"확률을 추정하는 데 필요한 표본 크기


13

게임이 완료되면 보상을 주거나 아무것도 제공하지 않는 이벤트를 제공한다고 가정하십시오. 보상이 제공되는지 여부를 결정하는 정확한 메커니즘은 알려져 있지 않지만 난수 생성기를 사용한다고 가정하고 결과가 하드 코딩 된 값보다 큰 경우 보상을받습니다.

기본적으로 프로그래머가 보상이 얼마나 자주 주어지는 지 (15-30 % 추정) 결정하는 데 사용하는 가치를 역 엔지니어링하려면 필요한 샘플 수를 어떻게 계산합니까?

나는 "진정 확률 추정기"섹션에서 시작했다 : Checking_whether_a_coin_is_fair , 그러나 나는 올바른 길로 향하고 있는지 확신하지 못한다. 95 % 신뢰도에서 최대 3 %의 오차에 필요한 ~ 1000 개의 샘플 결과를 얻었습니다.

궁극적으로, 내가 해결하려고하는 것은 다음과 같습니다.

  • 이벤트 # 1은 시간의 X % 인 1.0R 보상
  • 이벤트 # 2는 시간의 Y % 인 1.4R 보상

어떤 이벤트가 더 효율적인지 결정하기에 충분히 정확하게 X & Y를 추정하고 싶습니다. 최대 20 분마다 1 개의 샘플 만 얻을 수 있기 때문에 큰 샘플 크기는 문제가됩니다.


6
" 95 % 신뢰도에서 최대 3 %의 오류에 필요한 ~ 1000 개의 샘플 결과를 얻었습니다. "--- 거의; 그렇기 때문에 여론 조사는 종종 약 1000 명을 표본 추출한 다음 3 % 정도의 오차 한계를보고합니다. 백분율이 0 또는 1에 가까울 때 꽤 적용됩니다 (이 경우 너무 넓음)
Glen_b-복지국 Monica

1
"더 효율적인 것"이란 무엇을 의미합니까? "어떤 이벤트가 예상보다 큰 보상을 받습니까"를 의미합니까?
Glen_b-복지 주 모니카

1
예, 시간이 지남에 따라 예상되는 보상이 더 큰 것을 알아 내려고 노력 중입니다. 두 행사를 모두 수행 할 수는 없습니다. 둘 중 하나를 선택해야합니다. 이벤트 # 1은 보상이 적지 만 보상을 더 자주 제공 할 수 있습니다.
브래드

2
샘플 크기가 미리 고정되어 있지 않은 순차 samplig를 사용할 수 있습니다 . 이 방법의 장점 은 (알 수없는) 확률에 상관없이 신뢰를 보장 한다는 것 입니다. 예를 들어 여기를 참조 하십시오 ; 특별히 마지막으로 참조 된 논문
Luis Mendo

답변:


5

개별 시행이 독립적이라고 가정하면 이항 변량 에서 을 결정 하고 를 추정하려고합니다 . 이제 의 최대 우도 추정값 인 표본 비율 은 분산 을 . 따라서 표준 오류는 입니다. 큰 샘플 aprroximate 신뢰 구간이 너무 최대 것을 유지하기 위해,이 표준 오류에 대한 절반 폭이 , 말하자면, 당신이 해결해야 준다, N , P의 P는 P = X / N P ( 1 - P )

XBin(n,p)
nppp^=X/n p=1p(1p)n14n1/p=12 0.0321/4n=12n0.03n1112p
22n0.03
n1112 . 이제 같은 방법으로 반폭에 대한 다른 요구 사항을 해결할 수 있습니다. 가 0.5에서 멀어진 다는 것을 알고 있거나 기꺼이 알고 있다면 약간의 관측으로 할 수 있습니다.p

2

나는 그것이 덜 우아하다는 것을 알고 있지만 그것을 시뮬레이션해야했습니다. 나는 아주 간단한 시뮬레이션을 만들었을뿐만 아니라, 우아하지 않고 실행 속도가 느립니다. 그래도 충분합니다. 한 가지 장점은 일부 기본 사항이 옳은 한 우아한 접근 방식이 떨어지는 시점을 알려줍니다.

샘플 크기는 하드 코딩 된 값의 함수에 따라 달라집니다.

코드는 다음과 같습니다.

#main code
#want 95% CI to be no more than 3% from prevalence
#expect prevalence around 15% to 30%
#think sample size is ~1000

my_prev <- seq(from=0.15, to=0.30, by = 0.002)

samp_sizes <- seq(from=400, to=800, by = 1)
samp_sizes

N_loops <- 2000

store <- matrix(0,
                nrow = length(my_prev)*length(samp_sizes),
                ncol = 3)
count <- 1

#for each prevalence
for (i in 1:length(my_prev)){

     #for each sample size
     for(j in 1:length(samp_sizes)){

          temp <- 0

          for(k in 1:N_loops){

               #draw samples
               y <- rbinom(n = samp_sizes[j],
                           size = 1,
                           prob = my_prev[i])

               #compute prevalence, store
               temp[k] <- mean(y)

          }

          #compute 5% and 95% of temp
          width <-  diff(quantile(x = temp,probs = c(0.05,0.95)))

          #store samp_size, prevalence, and CI half-width
          store[count,1] <- my_prev[i]
          store[count,2] <- samp_sizes[j]
          store[count,3] <- width[[1]]

          count <- count+1
     }

}


store2 <- numeric(length(my_prev))

#go through store
for(i in 1:length(my_prev)){
     #for each prevalence
     #find first CI half-width below 3%
     #store samp_size

     idx_p <- which(store[,1]==my_prev[i],arr.ind = T)
     idx_p

     temp <- store[idx_p,]
     temp

     idx_2 <- which(temp[,3] <= 0.03*2, arr.ind = T)
     idx_2

     temp2 <- temp[idx_2,]
     temp2

     if (length(temp2[,3])>1){
     idx_3 <- which(temp2[,3]==max(temp2[,3]),arr.ind = T)
     store2[i] <- temp2[idx_3[1],2]
     } else {
          store2[i] <- temp2[2]
     }


}


#plot it
plot(x=my_prev,y=store2,
     xlab = "prevalence", ylab = "sample size")
lines(smooth.spline(x=my_prev,y=store2),col="Red")
grid()

그리고 여기에 유병률에 대한 95 % CI의 불확실성 이 그것을 초과하지 않고 가능한 한 3 %에 가깝도록 표본 크기 대 유병률의 도표가 있습니다.±

표본 크기 대 유병률

kjetil이 제안한 것처럼 50 %에서 "약간 더 적은 관측치"가 필요한 것으로 보입니다.

400 개 샘플 이전에 적절한 유병률 추정치를 얻을 수 있고 샘플링 전략을 조정할 수 있다고 생각합니다. 중간에 조그가 있어야한다고 생각하지 않으므로 N_loops를 최대 10e3까지 범프하고 "my_prev"의 "by"를 0.001까지 범프 할 수 있습니다.


이것이 느리면 단계를 너무 작게 만들기 때문입니다!
kjetil b halvorsen

@kjetilbhalvorsen-그것은 충분했다. "천천히"는 면책 조항이었고, "손잡이"는 방법을 사용하는 사람이 더 편안하게 느낄 수 있도록 도와줍니다. 분석적 접근 방식을 모른다면 시뮬레이션을 통해 자신을 가르치거나 도움을 요청해야하는지 결정할 수 있습니다.
EngrStudent

1

이벤트 # 1의 경우 값, 이벤트 # 2의 경우 값 을 추정하려는 것 같습니다 . Hoeffding의 부등식 을 사용 하여 여기에서 범위를 결정하거나 곱하기 경계 대신 추가를 원할 경우 Chernoff 's bound을 사용할 수 있습니다 .YXY

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.