진행 중인 A/B 테스트를 반복적으로 확인하고 유의한 결과가 나오는 즉시 중단할 때 왜 통계적 유의성이 왜곡되는지 설명하고, 이를 피하기 위한 실용적인 방법과 대안을 소개한다.
By Evan Miller
2010년 4월 18일
웹사이트에서 A/B 테스트를 실행하면서 진행 중인 실험을 정기적으로 확인해 유의한 결과가 나왔는지 살펴본다면, 통계학자들이 _반복 유의성 검정 오류_라고 부르는 문제에 빠지고 있을 수 있습니다. 그 결과 대시보드에는 통계적으로 유의하다고 표시되더라도, 실제로는 유의하지 않을 가능성이 꽤 큽니다. 이 글에서는 그 이유를 설명합니다.
A/B 테스트 대시보드가 “원본을 이길 확률 95%” 또는 “통계적 유의성 확률 90%”라고 말할 때, 실제로는 다음 질문을 던지고 있습니다. A와 B 사이에 근본적인 차이가 전혀 없다고 가정할 때, 현재 데이터에서 보이는 것과 같은 차이를 단지 우연만으로 얼마나 자주 보게 될까요? 이 질문에 대한 답을 유의수준이라고 하며, “통계적으로 유의한 결과”란 유의수준이 낮다는 뜻입니다. 예를 들어 5%나 1% 같은 수준입니다. 대시보드는 보통 이 값의 여집합인 95%나 99%를 취해 “원본을 이길 확률” 같은 식으로 보고합니다.
하지만 유의성 계산에는 아마도 당신이 자각하지도 못한 채 위반했을 가능성이 큰 치명적인 가정이 하나 있습니다. 바로 _표본 크기가 사전에 고정되어 있었다_는 가정입니다. 미리 “이 실험은 정확히 1,000개의 관측치를 수집할 것이다”라고 정하는 대신, “유의한 차이가 보일 때까지 돌리자”라고 말한다면, 보고되는 모든 유의수준은 의미를 잃습니다. 이 결과는 완전히 직관에 반하고, 시중의 모든 A/B 테스트 패키지가 이를 무시하고 있지만, 간단한 예로 문제의 원인을 설명해 보겠습니다.
200개와 500개의 관측치가 쌓였을 때 실험을 분석한다고 가정해 봅시다. 일어날 수 있는 경우는 네 가지입니다.
| 시나리오 1 | 시나리오 2 | 시나리오 3 | 시나리오 4 | |
|---|---|---|---|---|
| 관측치 200개 후 | 유의하지 않음 | 유의하지 않음 | 유의함! | 유의함! |
| 관측치 500개 후 | 유의하지 않음 | 유의함! | 유의하지 않음 | 유의함! |
| 실험 종료 시점 | 유의하지 않음 | 유의함! | 유의하지 않음 | 유의함! |
처치 A와 B가 동일하고 유의수준이 5%라고 가정하면, 실험이 끝났을 때 우리는 전체의 5%에서 유의한 결과를 얻게 됩니다.
하지만 유의한 결과가 나오는 즉시 실험을 중단한다고 가정해 봅시다. 이제 일어날 수 있는 네 가지 경우를 다시 보겠습니다.
| 시나리오 1 | 시나리오 2 | 시나리오 3 | 시나리오 4 | |
|---|---|---|---|---|
| 관측치 200개 후 | 유의하지 않음 | 유의하지 않음 | 유의함! | 유의함! |
| 관측치 500개 후 | 유의하지 않음 | 유의함! | 실험 중단 | 실험 중단 |
| 실험 종료 시점 | 유의하지 않음 | 유의함! | 유의함! | 유의함! |
첫 번째 행은 이전과 동일하며, 관측치 200개 시점의 보고된 유의수준은 완전히 괜찮습니다. 하지만 이제 세 번째 행을 보십시오. 실험 종료 시점에서, A와 B가 실제로 같다고 가정하더라도 우리는 유의하지 않은 결과에 비해 유의한 결과의 비율을 높여 버렸습니다. 따라서 보고된 유의수준, 즉 “관측된 차이가 우연 때문인 시간의 비율”은 틀리게 됩니다.
전환율이 50%이고, 새로운 로고가 전환율을 50%보다 높이거나 낮추는지 테스트하고 싶다고 가정해 봅시다. 5% 유의성이 나타나는 즉시 실험을 중단하거나, 아니면 관측치 150개 후에 실험을 종료합니다. 이제 새로운 로고가 실제로는 아무 효과도 없다고 가정해 봅시다. 이때 당신의 실험이 잘못해서 유의한 결과를 찾아내는 비율은 몇 퍼센트일까요? 5%를 넘지 않겠지요? 앞선 분석을 감안하면 6% 정도일까요?
정답은 26.1%입니다. 당신이 아마 유의수준이라고 생각했던 값의 다섯 배를 훨씬 넘습니다. 이는 매 관측치마다 유의성 검정을 수행하는 일종의 최악 사례이긴 하지만, 전혀 드문 일은 아닙니다. 실제로 적어도 하나의 A/B 테스트 프레임워크는 유의한 결과가 나오면 실험을 자동으로 중단하는 코드를 제공합니다. 그건 멋진 기능처럼 들리지만, 통계적으로는 끔찍한 괴물입니다.
반복 유의성 검정은 언제나 거짓 양성 비율을 증가시킵니다. 즉, 유의하지 않은 결과를 유의하다고 믿게 되는 일이 많아집니다. 반대 방향은 아닙니다. 데이터를 몰래 들여다보다가 유의한 결과처럼 보이는 실험을 중단하는 상황이 생기는 순간, 이 문제는 존재하게 됩니다. 더 자주 들여다볼수록 유의수준은 더 크게 왜곡됩니다. 예를 들어 진행 중인 실험을 열 번 들여다본다면, 당신이 1% 유의성이라고 생각하는 값은 실제로는 그냥 5% 유의성에 불과합니다. 실제 유의성 5%를 얻기 위해 대시보드에 표시되어야 하는 다른 유의성 값들은 다음과 같습니다.
| 당신이 들여다본 횟수… | 실제 유의성 5%를 얻기 위해 필요한 값… |
|---|---|
| 1번 | 보고된 유의성 2.9% |
| 2번 | 보고된 유의성 2.2% |
| 3번 | 보고된 유의성 1.8% |
| 5번 | 보고된 유의성 1.4% |
| 10번 | 보고된 유의성 1.0% |
이 문제가 얼마나 심각한지는 스스로 판단하십시오. 하지만 진행 중인 A/B 테스트 결과를 계속 확인하고 빠르게 의사결정을 내리는 방식으로 비즈니스를 운영하고 있다면, 이 표는 등골이 서늘해지게 할 것입니다.
실험을 운영하는 사람이라면: 반복 유의성 검정 오류를 피하는 가장 좋은 방법은 유의성을 반복해서 검정하지 않는 것입니다. 표본 크기를 미리 정해 두고, 실험이 끝나기 전까지는 A/B 테스트 소프트웨어가 제공하는 “원본을 이길 확률” 수치를 믿지 마십시오. 데이터를 “힐끗 보는 것” 자체는 괜찮지만, 실험이 끝나기 전에 중단하지 않을 자제력이 있어야 합니다. 이것이 인간 본성에 어긋난다는 점은 알지만, 아마 가장 좋은 조언은 이것입니다. 들여다보지 마세요.
어차피 표본 크기를 미리 고정할 것이므로, 어떤 표본 크기를 사용해야 할까요? 다음 공식은 괜찮은 경험 법칙입니다.
여기서 $\delta$는 검출하고 싶은 최소 효과이고, $\sigma^{2}$는 예상하는 표본 분산입니다. 물론 분산을 모를 수도 있지만, 계산하는 값이 단순한 이항 비율이라면 예를 들어 전환율 퍼센트 같은 경우, 분산은 다음과 같이 주어집니다.
표본 크기를 미리 확정하는 것만으로도 여기서 설명한 문제를 완전히 완화할 수 있습니다.
업데이트, 2013년 5월: 제 새로운 인터랙티브 **표본 크기 계산기**에서 이 공식을 실제로 확인할 수 있습니다. 검출하고 싶은 효과 크기를 입력하고, 검정력과 유의수준을 설정하면, 필요한 표본 크기를 읽기 쉬운 숫자로 알려 줍니다. 업데이트 끝
A/B 테스트 소프트웨어를 만드는 사람이라면: 실험이 끝나기 전에는 유의수준을 보고하지 말고, 유의수준을 실험의 중단 또는 지속 여부를 결정하는 기준으로 쓰는 것도 그만두십시오. 진행 중인 실험의 유의성을 보고하는 대신, 현재 표본 크기로 어느 정도의 효과를 검출할 수 있는지를 보고하십시오. 이는 다음 식으로 계산할 수 있습니다.
여기서 두 개의 $t$는 주어진 유의수준 $\alpha / 2$와 검정력 $\left(\right. 1 - \beta \left.\right)$에 대한 t-통계량입니다.
듣기 괴롭겠지만, 실험이 끝날 때까지 처치 효과의 “현재 추정치”를 아예 제외하는 것까지 고려할 수 있습니다. 그 정보가 실험을 중단하는 데 사용된다면, 보고되는 유의수준은 쓰레기입니다.
정말 제대로 하고 싶다면: 표본 크기를 사전에 고정하는 일은 답답할 수 있습니다. 변경 사항이 폭발적인 성공을 거두고 있다면 즉시 배포해야 하지 않을까요? 이 문제는 오래전부터 의료 분야를 괴롭혀 왔습니다. 의료 연구자들은 새로운 치료가 효과적으로 보이는 즉시 임상시험을 중단하고 싶어 하지만, 동시에 데이터에 대해 타당한 통계적 추론도 해야 하기 때문입니다. 의료 실험 설계에서 사용되는 접근법 중 누군가가 웹 환경에 꼭 적용해야 할 몇 가지를 소개합니다.
더 알아보기:“Simple Sequential A/B Testing”
더 알아보기:“Bayesian A/B Testing”
강력하고 편리해 보이지만, 진행 중인 A/B 실험을 보여 주는 대시보드 화면은 오용을 부릅니다. 수동이든 자동이든 어떤 “중단 규칙”과 함께 사용되는 순간, 그로부터 나온 유의성 검정은 그저 무효입니다. 순차 또는 베이지안 실험 설계가 소프트웨어에 구현되기 전까지, 웹 실험을 수행하는 사람은 표본 크기를 미리 고정한 실험만 실행해야 하며, 거의 종교적인 규율에 가깝게 그 표본 크기를 지켜야 합니다.
P. Armitage, C. K. McPherson, and B. C. Rowe. “Significance Tests on Accumulating Data,” Journal of the Royal Statistical Society. Series A (General), Vol. 132, No. 2 (1969), pp. 235-244
John A. List, Sally Sadoff, and Mathis Wagner. “So you want to run an experiment, now what? Some Simple Rules of Thumb for Optimal Experimental Design.” NBER Working Paper No. 15701
Wheeler, Robert E. “Portable Power,” Technometrics, Vol. 16, No. 2 (May, 1974), pp. 193-201
Pocock, Stuart J. “Group Sequential Methods in the Design and Analysis of Clinical Trials,” Biometrika, Vol. 64, No. 2 (Aug., 1977), pp. 191-199
Pocock, Stuart J. “Interim Analyses for Randomized Clinical Trials: The Group Sequential Approach,” Biometrics, Vol. 38, No. 1 (Mar., 1982), pp. 153-162
Berry, Donald A. “Bayesian Statistics and the Efficiency and Ethics of Clinical Trials,” Statistical Science, Vol. 19, No. 1 (Feb., 2004), pp. 175-187
evanmiller.org에서 읽고 계십니다. 이곳은 수학, 기술, 그리고 단상들을 모아 둔 임의의 모음집입니다. 이 글이 마음에 드셨다면 다음 글도 좋아하실 수 있습니다:
LinkedIn, Twitter, 또는 RSS를 통해 새 글이 게시될 때 받아보세요.
MySQL, PostgreSQL, 또는 SQLite 데이터베이스에서 통계적 패턴을 찾고 싶으신가요? 제 데스크톱 통계 소프트웨어 **Wizard**는 쓸데없는 명령 문법과 씨름하느라 며칠을 허비하지 않고도 더 적은 시간에 더 많은 데이터를 분석하고 발견을 시각적으로 전달할 수 있도록 도와줍니다. 확인해 보세요!
Mac 방식의 통계
Evan Miller의 홈 페이지로 돌아가기 – RSS 구독 – LinkedIn – Twitter