배경: 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

  1. increasing power with covariates
  2. increased test velocity
  3. Bias correction
  4. handling of more complex correlation structure

Regression does not

  1. Allow you to skip your power analysis
  2. 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

  1. Stratification
    1. basic idea: 샘플들을 덩어리 별로 쪼갠 후, 덩어리 별로 평균 값을 구한 다음 그 평균값을 estimator로 사용한다

variance of Y 는 within strata variance + between strata variance 로 분리를 할 수 있는데 stratification을 통하면 후자를 날릴 수 있음. 그렇기에 만약 나이별로 strata를 나눌 경우 훨씬 더 적은 variance를 얻을 수 있음.

“ stratification 이 잘 되기 위해서는 기준 점이 데이터내의 존재하는 집단들을 잘 분리할 수 있어야 한다. “

  1. 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가 제일 높은 현상 발생.

결론

  1. 유저를 확실히 가를 수 있는 기준점이 되는 변수를 사용하자 ex) Queries per user → Bing 에서 Light, heavy user 를 가르는 확실한 기준점
  2. 실험 전 기간에 측정이 되었던 지표를 사용하자
  3. variance가 줄어드는지 pre experiment 는 1~2 주가 적당
  4. 실험군 대조군 차이의 기준과 독립적이지 않은 covariates 는 사용하면 안된다. 편향 야기

추가 단계

  1. Opimized Covariate Selection
  2. 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

 

복사했습니다!