
배경: regression 을 이용하여 a/b testing 분석을 하면 bias를 줄인 결과를 내놓을 수 있다는 말을 듣고 영상과 논문을 찾다가 CUPED 라는 것을 발견하여 공유
T-test: the most common method used in A/B testing
why is it most used? - 간단한 연산으로 알아낼 수 있기 때문에
가정이 필요함
- independence
- normally distributed
- homogeneity of variances
But, t- test 를 쓸때는
Type 1 error(false positive): Rejecting the null hypothesis while it is trueType 2 error( false negatives) : Incorrectly retaining the null hypothesis
의 균형을 맞춰야 한다
alpha = 0.05 20번 중 1번 false positive beta= 0.8 5번중 4번 제대로 기각
power is affected by
- effect size
- sample size
- variation of the data
Regression enables
- increasing power with covariates
- increased test velocity
- Bias correction
- handling of more complex correlation structure
Regression does not
- Allow you to skip your power analysis
- Allow you to run underpowered experiments
covariates : what to use
- make sure they aren’t correlated with the treatment
- rule of thumb : only use pre-experiment data : 실험이 시작 되기전에 유저가 갖고 있던 특성에 대해서
- Best covariates are highly correlated with your outcome variable
- often the pre-experiment value of your outcome it the best
CUPED
Controlled-experiment Using Pre-Experiment Data
실험 전 데이터를 이용하여 variance를 줄여 sensitivity를 높여 적은 실험 모수와 짧은 기간임에도 p-value를 확보 할 수 있도록 함.
Based on
- Stratification
- basic idea: 샘플들을 덩어리 별로 쪼갠 후, 덩어리 별로 평균 값을 구한 다음 그 평균값을 estimator로 사용한다
variance of Y 는 within strata variance + between strata variance 로 분리를 할 수 있는데 stratification을 통하면 후자를 날릴 수 있음. 그렇기에 만약 나이별로 strata를 나눌 경우 훨씬 더 적은 variance를 얻을 수 있음.
“ stratification 이 잘 되기 위해서는 기준 점이 데이터내의 존재하는 집단들을 잘 분리할 수 있어야 한다. “
- Control variable
로 는 Cor(X,Y) 를 뜻하므로 이 둘이 correlated가 더 많이 되었을 수록 variance는 더욱 작아진다는 결론을 낼 수 있다.
결국 둘은 하나를 말하고 있다. “data 와 allign ↔︎ correlated 되어야함”
But..?
신규 유저의 경우 pre-experiment data가 존재하지 않는다 그렇다면..?
→ 그 유저가 pre-experiment 기간에 있었는지 없었는지를 구분하는 또 하나의 covariate 를 만들어서 사용할 수 있다. 이는 유저를 2개의 strata로 나누는 걸로 볼 수 있음. 명확한 기준점이기 때문에 잘 나눠진 strata라 할 수 있어 variance reduction을 해치치도 않음
예시
Bing 의 사례
: Page load time 과 user engagement 의 관계를 알아보고자 실험진행
CUPED 를 적용한 파란색 선의 경우 첫날 부터 p-value< 0.05 를 달성하였고 실험 기간 내내 0.05 아래
preQueries 와 EntryDay 를 covariates로 선정해보기 위해 각각이 CUPED’s 의 variance 를 얼마나 떨어뜨리는지 확인 해봄. (1) entry-day, which is a categorical variable indicating the first day a user appears in the experiment (2) queries-per- user in the 1-week pre-experiment period.→ preQueries 를 선정
pre-period 기간에 따른 variance reduction rate
2번째와 3번째 그래프를 통해서 생각해볼 점
- Correlation: 전 실험기간과, 현 실험기간이 길수록 누적된 지표에서 correlation이 증가하기 때문에, correlation이 클수록 variance reduction은 커지는 것을 볼 수 있음.
- Coverage: 실제 실험기간에 포함되는 유저가 전 실험기간에서 등장한 유저들로부터 얼마나 cover되고 있는지.
- Experiment duration: 실험기간이 길수록, coverage는 낮아지는데 (10일 ~13일부터 감소하는 그래프) 이 이유는 비번하게 오는 방문자들의 경우는 이른 실험기간에 발견되고, 뒤에 발견되는 피실험자들의 경우엔 대부분 신규 유저이거나 이탈했다가 등장했던 유저이기 때문에 뒤로갈 수록 coverage가 줄어들어 reduction rate 도 줄어듬
- pre-period duration: 이 기간이 커질 수록 커버가능한 피실험자가 증가하기 때문에 주황색 동그라미의 rate가 제일 높은 현상 발생.
결론
- 유저를 확실히 가를 수 있는 기준점이 되는 변수를 사용하자 ex) Queries per user → Bing 에서 Light, heavy user 를 가르는 확실한 기준점
- 실험 전 기간에 측정이 되었던 지표를 사용하자
- variance가 줄어드는지 pre experiment 는 1~2 주가 적당
- 실험군 대조군 차이의 기준과 독립적이지 않은 covariates 는 사용하면 안된다. 편향 야기
추가 단계
- Opimized Covariate Selection
- Incorporation Covariate Information
생각 - Covariate 선정에 대한 어느 정도 그림은 그려지지만 우리 실험에서는 어떻게 이용할 수 있을지 더 생각해보고 적용 방식을 고민해야겠다 싶음. 어떤 실험을 할 때 어떤 covariate를 써야하는지 지금 당장은 감이 오질 않는다.
참조:
Progression by Regression: How to increase your A/B Test Velocity
https://exp-platform.com/Documents/2013-02-CUPED-ImprovingSensitivityOfControlledExperiments.pdf