Average Treatment Effect

ATE(Average Treatment Effect)는 Treatment와 Control Group을 비교해서 Treatment의 Effect를 정의한 값이다. 이름이 의미하는 것처럼 Individual이 아닌 Group단위로 합한 후 평균 효과를 본다. 개개인의 Counterfactual을 보는 것은 불가능에 가깝기 때문이다.  ATE를 수식으로 쓰면 다음과 같다(참고).

$$E[Y|T=1] - E[Y|T=0] = \underbrace{E[Y_1 - Y_0|T=1]}_{ATT} + \underbrace{\{ E[Y_0|T=1] - E[Y_0|T=0] \}}_{BIAS}$$

이 식을 Regression 형태로 생각해보면 다음과 같이 작성할 수 있다.

$$Y_{1i} = Y_{0i} + \kappa $$

$i$번째 Data Point에 대해서 전후의 변화는 $\kappa$로 설명하고 있다. 즉 $\kappa = ATE$이다. 이를 간략하게 Python Code로 보면 다음과 같다.

아래 Data는 Online 수업 여부에 따른 성적의 변화에 관한 데이터이다.

import pandas as pd
import statsmodels.formula.api as smf

df = pd.read_csv("https://raw.githubusercontent.com/matheusfacure/python-causality-handbook/master/causal-inference-for-the-brave-and-true/data/online_classroom.csv")

result = smf.ols('falsexam ~ format_ol',data=df).fit()
result.summary().tables[1]
genderasianblackhawaiianhispanicunknownwhiteformat_olformat_blendedfalsexam
000.00.00.00.00.01.000.063.29997
110.00.00.00.00.01.000.079.96000
210.00.00.00.00.01.001.083.37000
310.00.00.00.00.01.001.090.01994
410.00.00.00.00.01.010.083.30000

마지막 결과 값을 보면 다음과 같다. Intercept의 Coefficient가 77.8555, format_0l이 -4.2203이다. 식이 대략 $Exam = \beta_0 + \beta_1 formatol $ 형태일테니, Online 수업으로 할 경우 성적은 약 -4.2203이 떨어진다. 이게 ATE일 것이다.


coef
std errtP>|t|[0.0250.975]
Intercept77.85550.762102.2350.00076.35779.354
format_ol-4.22031.412-2.9900.003-6.998-1.443

확인차 Online 수업을 받은 학생과 그렇지 않은 학생의 성적을 보면 4.2203 정도의 평균 차이가 나는 것을 확인할 수 있다.

(df
 .groupby("format_ol")
 ["falsexam"]
 .mean())

0    77.855523 1    73.635263

References