
Frequentist approach & Bayesian approach
Frequentist
- 우리가 사용하고 있는 일반적인 A/B testing 접근법
- 베이지안 접근법보다 해석이나 설명하는 것이 조금 더 복잡한 방식
- 우리가 구한 parameter 또는 metric이 변하지 않는 상수라 여겨지며 확률분포와는 관련이 없음
Bayesian
- Frequentist 와 가장 큰 차이점은 우리의 metric을 상수가 아닌 하나의 random variable 이라고 여겨, 그것이 확률 분포를 갖게 된다는 점
- 우리의 추정치에 대한 불확실성까지 포함하여 확률에 기반한 추론이 가능해지기에 frequentist 가 가지는 해석보다 훨씬 직관적임
- i.e 신뢰구간을 해석할 때
💡 95% CI for theta : (-0.68, 1.23) 일 경우
-
- frequentist: 우리가 여러 관측치를 얻어 신뢰구간을 구하는 작업을 무수히 많이 반복하면, 무수히 많은 신뢰구간을 얻을 수 있는데 이중 95%의 구간이 theta 를 포함하고 나머지는 포함하지 않는다.
- Bayesian : theta가 (-0.68,1.23) 에 포함될 확률이 95% 이다.
- 베이지안 접근법의 경우 군집 별로 같은 숫자의 인원을 분배할 필요가 없어서 작은 인원만을 가지고 빠르게 결과를 얻어낼 수 있다.
기존의 A/B testing 의 문제
- Random selection이 보장되어야 한다
- Confounding variable 으로 인해 실제 X가 Y에 미치는 영향이 과소 or 과대평가됨 : omitted variable bias
계량 경제학에서 제시하는 방법들
1. Instrumental Variables (도구변수)
가설: subscribing to more topics will make users more engaged because they will be getting more relevant and interesting new content to read.
X: the number of subscription
Y: engagement
기존 처럼 A/B test 를 진행할 때 예상되는 문제
1. 유저들마다 구독하는 토픽의 수를 랜덤하게 배정할 수 없다
2. 더 많은 토픽을 구독하는 유저일수록 활동성이 더 좋은 유저일 확률이 높아 engagement 가 높은 것처럼 보일 수 있다.
이렇게 X→Y 의 관계에 보이지 않는 또다른 작용을 일으키는 변수가 있는 것이 추정되어 제대로 된 인과관계를 확인하기 힘들때 endogeneity 문제가 있다고 말할 수 있다.
그렇다면 어떻게 해결할 것인가?
x와는 높은 상관성을 지니되 y와는 충분히 낮은 상관성을 갖는 z 인 도구 변수를 사용한다.
그럼 무엇을 도구변수로 이용할 것인가? → 회사의 경우는 기존에 진행했던 a/b 테스트를 이용한다.
ex) 유저들을 두 그룹으로 무작위로 나눈 후 B 그룹에게만 홈페이지에서 토픽 구독에 대한 알림을 주었던 과거의 실험이 존재 → 이 실험을 바탕으로 실험군에서 더 많은 토픽을 구독했다는 결론을 얻어냄 → 실험군인지 대조군인지의 여부를 도구 변수로 이용가능.
WHY?
- 위 실험의 경우 실험군,대조군의 여부가 the number of subscriptions와 관계가 있다는 것을 확인 " x와는 높은 상관성 " 만족
- 실험군과 대조군이 여부가 Engagement 와는 상관성이 매우 낮으며 X를 통해서만 영향을 줄 수 있음 "y와는 충분히 낮은 상관성" 만족 따라서, 도구 변수의 두 조건을 만족
Two-stage least squares
- First stage: 도구변수를 X에 대해 regress → regress 실험군,대조군 여부 on the number of subscription(X)
- Second stage: first stage의 predicted value on Y → regress predicted values on engagement
→ 도구 변수와 Two-stage least squares 를 이용해 내생성의 문제를 해결하고 구독수가 engagement에 미치는 영향을 알 수 있다.import statsmodels.formula.api as smf reg1 = smf.ols(formula = "number_of_subscriptions ~ treated", data = data).fit() pred = reg1.predict() reg2 = smf.ols(forumla = "engagement ~ pred", data = data)
2. Regression Discontinuity Design(RDD)
- 연속적인 숫자 분포를 갖고 있는 데이터의 경우 사용이 가능함
- cut-off 를 두었을 때 cut-off 바로 아래의 유저들과, 바로 위의 유저들은 매우 비슷하여서 시스템적으로 문제가 될만한 차이를 갖고 있지 않다고 간주할 수 있음. 그래서 거의 랜덤화된 유저들도 판단이 가능하다.
- 그리고 나서 각각의 실험군의 대조군이 결과값 차이를 보게되면 그것을 통해 실험 효과를 알아볼 수 있다.
Example) Effect of cash transfer on consumption
목표 : Target transfer to poorest households
방법 :
- poverty index 1~100으로 지정
- index score≤50 = poor, index score >50 are non-poor 로 구분
- cash transfer to poor households
평가 : transfer 이후의 cut-off 위아래 households 의 차이 확인 (i.e 학교 출석률) (위 그림 처럼)
D_i= { 1 If household i receives transfer , 0 if household i does not receive transfer }
= function that is continuous around the cut-off point
으로 나타낼 수 있는 상황
그러나,
D_i=1 ↔ score_i <= 50
D_i=0 ↔ score_i > 50
를 이용하여 다음과 같이 two stage 로 구성 가능
- RDD 의 경우 사회 복지 정책 수립시에 주로 이용되는 방법
- 장)실험군과 대조군을 assign 하는 것이 훨씬 수월함
- 단)cut-off 바로 위 아래의 관측치에 대해서 실험을 진행하다보니 샘플 사이즈가 작은 편
3. Difference in Differences (Diff in Diff)
- 실험이 진행되기 이전의 대조군과 실험군의 지표 차이와 실험이 진행된 후의 대조군과 실험군의 지표 차이를 비교하는 방법
a: 대조군
b: 실험군
t: 실험 이전의 시간
t+1: 실험이 적용된 이후의 시간
→ 실험군과 대조군끼리 갖고 있던 기존의 차이를 줄여 selection bias 또한 줄일 수 있다.
장점)
- 구하는 것이 쉽고, 회귀분석을 활용할 수 있다.
- age, location 과 같은 confounding variable로 인한 문제가 덜 생긴다
전제되는 가정 parallel trends assumption: 개입이 있지 않은 한 실험군과 대조군 사이의 차이는 시간이 흘러도 계속 같을 것이다.
Example)
가설: 이탈할 가능성이 높은 유저에게 이메일을 보낸다면 이탈을 막아 해당 유저들의 평균 revenue 가 증가할 것이다.
이 가설이 맞다면, 실험군이 대조군에 비해 평균 revenue가 더 높아야함.
기존 처럼 A/B test 를 진행할 때 예상되는 문제
1. 대조군 A 가 덜 이탈할 유저들이고 실험군 B 가 이탈할 가능성이 높은 유저라 selection bias 존재
→ 그리하여 selection bias 를 중화시킬 수 있는 Diff in Diff 사용
최종 data frame - our user's characteristics (X), two dummy variables , our interaction term which is what we are most interested in.
→ 𝛿 가 통계적으로 유의한지 아닌지를 판단하면 실험의 효과를 알 수 있다.
import statsmodels.formula.api as smf
reg1 = smf.ols(formula='revenue ~ treated + time_dummy + DD + X', data = data)
res = reg1.fit()
cf) data cleansing, feature engineering 이 생략되었으나 이 두 부분도 함께 과정에 있어야 한다.
P-value < 0.05 이므로 귀무가설(실험의 효과가 없다)를 기각하여 이메일 캠페인이 유저 이탈을 막는데 효과적이었다 결론 내릴 수 있다.
정리
내생성 문제, 샘플 셀렉션 편향 문제를 가질 경우 위의 3가지 방법들을 통해 인과성을 확인 해 볼 수 있다.
Reference
고전적 관점과 베이지안 관점의 차이(구간추정) : https://be-favorite.tistory.com/27
RDDD :http://pubdocs.worldbank.org/en/555311525379751882/TT6RegressionDiscontinuityFerre.pdf
https://towardsdatascience.com/experimentation-in-data-science-90521e74ee4c
'Statistics' 카테고리의 다른 글
실험 모수는 어느 정도가 적당할까요? : Power analysis & effect size calculation (0) | 2021.10.24 |
---|