PAP 내부에서 AB 테스팅 스터디 리드를 준비던 중 sample size 계산에 대한 수식적인 내용을 보충해야겠다는 생각이 들었습니다. 책(Trustworthy Online Controlled Experiments)의 Chapter 02 에 따르면, 샘플 사이즈를 계산하기 위해서는 baseline 의 평균과 표준편차를 알아야 한다는 내용이 나옵니다.
샘플 사이즈 계산에 필요한 기본적인 통계적인 로직을 이해하면, 다양한 상황에서 적용할 수 있는 장점이 있습니다. 제가 Optimizely 에서 본 계산기는 구매전환율과 같은 확률을 비교하는 상황(outcome 이 0과 1값 사이)인데, 유저 당 수익과 같은 outcome 이 확률이 아닌 상황에서는 다른 툴이 필요합니다. 샘플 계산기의 수식을 이해한다면 관련 자료를 찾아서 직접 계산을 해볼 수 있습니다.
최적의 샘플 사이즈를 구하기 위해서는 귀무가설과 대립가설이 필요합니다. 귀무가설은 “처치의 효과가 없다”이고, 대립가설은 “처치의 효과가 δ (Minimum Detectable Difference, 기대하는 차이의 최솟값) 이상 나타난다”입니다. 최적의 샘플 사이즈를 구하기 위해서는 다음 두 가지 조건이 만족되어야 합니다. 첫 번째로, 귀무가설이 참일 때 이를 잘못 기각하지 않아야 하고, 두번째로, 대립가설이 참일 때 귀무가설을 잘못 채택해서는 안됩니다. 첫번째의 경우는 두 집단 사이에 차이가 없는데, 두 집단 사이에 차이가 있다고 잘못 판단하는 경우이고, 두 번째 경우는 두 집단 사이에 δ가 나타날 때 두 집단 사이에 효과가 없다고 판단하는 경우입니다.
통제집단의 outcome 분포를 Yi0∼N(μ0,σ02)이라 하고, 처치집단의 outcome 분포를 Yi1∼N(μ1,σ12)라 합시다. 아직 실험이 시작하기 전에 이 값들을 구 해야하기 때문에, 기존 데이터에서 평균과 분산을 가져 오거나, 파일럿 실험을 통해서 이를 구합니다. 더불어서, 최소한의 처치 집단의 효과를 정합니다 (μ1−μ0=δ). 추가적으로, 처치의 효과가 t-test 를 통해서 결정된다고 가정합니다.
성공률에 대한 샘플사이즈 계산기에서 minimum detectable effect (앞으로 mde 라 하겠습니다) 는 기존 성공률에 대한 상대적인 상승률이라고 Optimizely 문서에서는 정의되어 있습니다 (MDE represents the relative minimal improvement over the baseline). mde=p0p1−1.
무작위 추출에서 SUTVA(Stable Unit Treatment Value Assumption) 가정을 충족하지 못하는 경우에는 clustered randomization 의 방법을 생각해볼 수 있습니다. 예를 들어, 게임 유저에게 랜덤하게 아이템을 지급할 때 한 유저의 아이템 장착이 다른 유저에게 영향을 준다면, spillover 가 발생하기 때문에 SUTVA 가정이 충족하지 못합니다. 이럴 때, 서버 단위의 실험을 생각해볼 수 있습니다 (홀수번째 서버는 아이템을 랜덤하게 지급하고 짝수번째 서버는 그렇지 않다는 등등). 이 때, 무작위 추출의 단위가 유저가 아니라 서버와 같은 그룹(클러스터) 단위이기 때문에, 표본의 크기도 달라집니다. List et al. 2011 논문의 섹션 4.2 Cluster Designs 에 추가적인 내용이 있어서 궁금하신 분들은 더 찾아보면 좋을 것 같네요.
샘플 사이즈 공식의 추론 과정을 이해하면, 구매전환율과 같은 확률적인 결과 뿐만 아니라, 결과값이 contiuous 한 경우, clustered randomization 과 같은 SUTVA 가 성립하지 않는 상황에서 직접 공식을 찾고 이를 이용해서 최소한의 샘플 사이즈를 엑셀이나 간단한 프로그램을 통해서 구할 수 있습니다.