최적의 샘플 크기에 도달하기 전에 A / B 테스트를 중지하는 것이 왜 잘못입니까?


13

회사에서 A / B 테스트 결과 (웹 사이트 변형으로 실행)를 발표 할 책임이 있습니다. 우리는 한 달 동안 테스트를 실행하고 우리가 의미에 도달 (또는 의미가 오랜 시간 동안 테스트를 실행 한 후 도달하지 않은 경우 포기) 할 때까지, 지금 알아내는하고 뭔가가있다 일정한 간격의 p 값을 확인 잘못된 관행 .

나는 지금이 관행을 멈추고 싶지만 그렇게하려면 왜 이것이 잘못되었는지 이해하고 싶다. I는 이해 효과의 크기는 샘플 크기 (N)는, 알파 의미 기준치 (α) 및 통계 전력 또는 선택 또는 묵시적 베타 (β)은 수학적으로 관련되어있다. 그러나 필요한 샘플 크기에 도달하기 전에 테스트를 중단하면 정확히 무엇이 달라 집니까?

나는 여기에 몇 개의 게시물을 읽었으며 (즉, this , thisthis ) 그들은 내 추정치가 치우 치며 Type 1 오류의 비율이 극적으로 증가한다고 말합니다. 그러나 어떻게 이런 일이 발생합니까? 결과에 대한 표본 크기의 영향을 분명히 보여주는 수학적 설명을 찾고 있습니다. 위에서 언급 한 요인 간의 관계와 관련이 있다고 생각하지만 정확한 공식을 찾아 내 스스로 해결할 수는 없었습니다.

예를 들어, 테스트를 조기에 중지하면 유형 1 오류율이 증가합니다. 좋구나. 그런데 왜? 유형 1 오류율이 증가하면 어떻게됩니까? 나는 직관이 빠졌습니다.

도와주세요.



1
예, 나는이 링크를 겪었지만 주어진 예를 이해하지 못했습니다.
sgk

죄송합니다 Gopalakrishnan-귀하의 첫 번째 링크가 이미 그 것을 가리키는 것을 보지 못했습니다.
seanv507

1
당신이 이해하지 못하는 것을 설명 할 수 있습니까? 수학 / 직관은 매우 분명해 보입니다. 필요한 샘플 크기 전에 멈추지 않고 반복적으로 확인합니다. 이므로 단일 검사를 위해 여러 번 설계된 테스트를 사용할 수 없습니다. (나는1엑스나는>θ)(엑스>θ)
seanv507

내 답변에 주어진 @GopalakrishnanShanker 수학 설명
tomka

답변:


4

고정 된 유형 1 오류 ( ) 수준으로 동일한 데이터에서 반복적으로 테스트하는 A / B 테스트 는 근본적으로 결함이 있습니다. 이것이 두 가지 이유가 있습니다. 먼저 반복 테스트는 서로 관련이 있지만 테스트는 독립적으로 수행됩니다. 둘째, 고정 α 는 유형 1 오류 인플레이션으로 이어지는 다중 수행 테스트를 설명하지 않습니다.αα

첫 번째를 보려면, 새로운 관찰마다 새로운 테스트를 수행한다고 가정하십시오. 사례가 두 테스트간에 변경되지 않았 으므로 두 개의 후속 p- 값은 상관 관계가 있습니다 . 결과적으로 우리는 p- 값의 이러한 상관성을 보여주는 @Bernhard의 도표에서 추세를 봅니다.1

제을 보려면 우리 실험 아래의 p 값을 갖는 확률 무관 한 경우에도 그 양해 테스트의 수 증가 t P ( A는 ) = 1 - ( 1 - α ) t , 여기서 A는 의 이벤트 거짓으로 기각 된 귀무 가설. 따라서 적어도 하나의 양성 테스트 결과를 가질 확률은 1에 해당합니다.α

()=1(1α),
1반복적으로 a / b 테스트 할 때 그런 다음 첫 번째 긍정적 인 결과 후에 단순히 중지하면이 공식의 정확성 만 표시했을 것입니다. 다르게 귀무 가설이 참이더라도 궁극적으로 그것을 거부 할 것입니다. 따라서 a / b 테스트는 효과가없는 궁극적 인 방법입니다.

+1<α

α

()α.

α제이=α/,
()α()<α0.05

(0,0.1)α=0.05

여기에 이미지 설명을 입력하십시오

보시다시피 조정이 매우 효과적이며 가족 현명한 오류율을 제어하기 위해 p- 값을 얼마나 급격하게 변경해야 하는지를 보여줍니다. @Berhard의 귀무 가설이 사실이기 때문에 이제는 더 이상 중요한 테스트를 찾지 못합니다.

()α


코드는 다음과 같습니다.

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

p.values <- numeric(n)
for (i in 5:n){
  p.values[i] <- binom.test(table(toss[1:i]))$p.value
}
p.values = p.values[-(1:6)]
plot(p.values[seq(1, length(p.values), 100)], type="l", ylim=c(0,0.1),ylab='p-values')
abline(h=0.05, lty="dashed")
abline(v=0)
abline(h=0)
curve(0.05/x,add=TRUE, col="red", lty="dashed")

2
이것은 나를 위해 작동합니다. 나는 지금 내 선배들에게 내 요점을 알기 위해 이것을 비즈니스 연설로 번역해야 할 것이지만 그것은 내 자신의 문제입니다. 대단히 감사합니다
sgk

8

귀무 가설이 참이면 사람들은 종종 p 값이 매우 높을 것으로 기대합니다. 사실이 아닙니다. 귀무 가설이 참이면 p는 균일하게 분포 된 랜덤 변수입니다. 즉, 때때로 무작위로 0.05 미만이됩니다. 다른 하위 샘플을 많이 보면 p 값이 0.05 미만이되는 경우가 있습니다.

이해하기 쉽도록 다음과 같은 작은 시뮬레이션이 있습니다 R.

이것은 동전을 10,000 번 던질 것이며 우리는 공정한 동전이라는 것을 알고 있습니다.

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

다섯 번째 던지기부터 시작하여 모든 던지기 후에 공정성에 대한 이항 테스트를 수행하고 p 값을 저장합니다.

p.values <- numeric(n)
for (i in 5:n){
     p.values[i] <- binom.test(table(toss[1:i]))$p.value
}

그리고 이것은 p- 값을 차례로 플로팅합니다.

plot(p.values, type="l")
abline(h=0.05)

여기에 이미지 설명을 입력하십시오

H0H0

(완전히 개방하기 위해이 예제와 같이 명확 해지기 전에 숫자 생성기에 대해 하나 이상의 시드를 시도했지만 교육 목적으로 사용하기에 적합합니다. R설치하고 실행하는 경우 쉽게 숫자를 사용할 수 있습니다. .)


간단한 실험에 감사드립니다. 그러나 한 단계에서 테스트를 중단했다고 가정하면 (p- 값 <0.05 인 경우) 결과가 무엇을 의미합니까? (잘못되었다는 사실 이외). p- 값 임계 값을 줄여서 보상 할 수 있습니까?
sgk

+1 상관 테스트 및 관련 다중 테스트 문제에 유의하십시오. (매우 좋은) 예를 기반으로 아래의 조정 옵션이있는 확장 답변을 참조하십시오.
tomka

αα

저의 주요 요점은 FWER (Family wise error) 비율 또는 FDR (False Discovery Rate) 둘 다 유형 1 오류를 제어하는 ​​것입니다. 유형 2 오류 제어는 일반적으로 매우 큰 표본으로 인해 a / b 테스트에서 문제가되지 않습니다.
tomka

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