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 의 문제

  1. Random selection이 보장되어야 한다
  2. 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?

  1. 위 실험의 경우 실험군,대조군의 여부가 the number of subscriptions와 관계가 있다는 것을 확인 " x와는 높은 상관성 " 만족
  2. 실험군과 대조군이 여부가 Engagement 와는 상관성이 매우 낮으며 X를 통해서만 영향을 줄 수 있음 "y와는 충분히 낮은 상관성" 만족 따라서, 도구 변수의 두 조건을 만족

 

Two-stage least squares

  1. First stage: 도구변수를 X에 대해 regress → regress 실험군,대조군 여부 on the number of subscription(X)
  2. Second stage: first stage의 predicted value on Y → regress predicted values on 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)​
    → 도구 변수와 Two-stage least squares 를 이용해 내생성의 문제를 해결하고 구독수가 engagement에 미치는 영향을 알 수 있다.

 

2. Regression Discontinuity Design(RDD)

  • 연속적인 숫자 분포를 갖고 있는 데이터의 경우 사용이 가능함
  • cut-off 를 두었을 때 cut-off 바로 아래의 유저들과, 바로 위의 유저들은 매우 비슷하여서 시스템적으로 문제가 될만한 차이를 갖고 있지 않다고 간주할 수 있음. 그래서 거의 랜덤화된 유저들도 판단이 가능하다.
  • 그리고 나서 각각의 실험군의 대조군이 결과값 차이를 보게되면 그것을 통해 실험 효과를 알아볼 수 있다.

좌: 실험전  우:실험 후 

Example) Effect of cash transfer on consumption

목표 : Target transfer to poorest households

방법 :

  1. poverty index 1~100으로 지정
  2. index score≤50 = poor, index score >50 are non-poor 로 구분
  3. 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

복사했습니다!