CUPED - 더 빠르게 실험 결과를 얻는 방법

실험을 하다보면 지표의 신뢰구간이 넓어 0을 포함할 때가 있다. 두 집단 간의 차이는 0과 꽤 떨어져 있는데 넓은 신뢰구간이 0을 포함하면 지표를 해석하는 것이 상당히 난감해진다. 지표의 분산을 줄이려면 어떻게 해야 할까? 가장 간단한 방법은 표본 크기를 늘리는 것이다. 전체 트래픽의 일부를 사용한 실험이라면 트래픽 비중을 최대 50%까지 높일 수 있다. 실험 기간을 연장하여 표본 크기를 늘리는 방법도 있다. 다만 실험 기간을 늘리는 것은 유저의 장기적인 행태에도 영향을 받을 수 있어 분산이 줄어들지 않을 가능성도 있다.

2013년 MS는 분산을 줄이기 위한 또다른 방법을 제안했는데 이것이 CUPED, Controlled experiment Using Pre-Experiment Data 이다. CUPED의 컨셉은 표준적인 delta 보다 분산이 더 작고, 더 효율적인 ATE 추정량을 사용하는 것이다.

먼저 통제변수 기법을 이해하고, CUPED가 통제변수 기법의 제약점을 어떻게 해소했는지 살펴본 후 실제 데이터에 적용하는 방식을 정리해보겠다. 이 글은 레퍼런스를 기반으로 세부 설명을 덧붙여 작성했고, CUPED의 근간이 되는 논문도 함께 읽어보는 것을 추천한다.

Control Variate
CUPED
CUPED 적용해보기
  1. Cov(Y,X)와 X의 평균, 분산을 연산하고, 이를 활용하여 최적의 $\theta$를 구한다.
  2. 각 사용자 별로 실험 이전 기간의 X 데이터를 계산한다.
  3. 전체 집단(population)의 통계값을 유저 레벨 데이터에 붙힌다.
  4. 유저별 변형된 지표를 생성한다. $Y_{cv}=Y-\theta X+\theta\mathrm{E}(X)$
  5. 변형된 지표로 기존의 통계 분석을 수행한다.
Reference