Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- HTML
- LU분해
- Instrumental Variable
- 머신러닝
- Sharp RD
- rct
- least square estimation
- 통계
- 교란 변수
- 누락편의
- Python
- OVB
- 단순선형회귀
- residuals
- simple linear regression
- 예제
- confounder
- 네이버 뉴스
- Omitted Variable Bias
- 최소제곱법
- 크롤링
- 사영
- 인과 추론
- backdoor adjustment
- 인과추론
- 교란변수
- 잔차의 성질
- 회귀불연속설계
- causal inference
- 선형대수
Archives
- Today
- Total
Always awake,
불연속회귀설계(RDD) 예제 본문
본 포스팅은 불연속회귀설계를 이용한 인과 효과 추정에 관한 예제입니다 :)
아래의 포스팅을 참고하시면 좋습니다.
본 포스팅에서는 불연속회귀설계 모델 중 임계값 전 후로 처치가 고정적으로 정해지는 Sharp RD에 대해 다루겠습니다
예제 데이터 생성
먼저 필요한 패키지를 import합니다
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.formula.api as sms
예제 데이터를 생성합니다여기서 변수는 아래와 같습니다
- 배정변수(running_var; $X$)
- 임계값(cutoff_value; $C_0$)
- 처치($D$)
- 1 : 배정변수 값이 임계값보다 높거나 같은 경우
- 0 : 배정변수 값이 임계값보다 낮은 경우
- 인과 효과(treated_effect; $\rho$) : 이 값을 추정해야 합니다.
- 결과 변수(outcome; $Y$)
np.random.seed(777)
nums = 1000
running_var = np.random.normal(20, 5, size = nums )
cutoff_value = 20
treated_effect = 15
outcome = 3 * running_var + np.where(running_var >= cutoff_value, treated_effect, 0) + np.random.normal(0,3,size = nums)
data = pd.DataFrame({'running_var' : running_var, 'outcome' : outcome})
data['D'] = (data['running_var'] >= cutoff_value).astype(int)
배정변수에 따른 결과변수의 scatter plot을 그려보면 아래와 같습니다
배정변수에 따라 결과변수 값이 선형적으로 증가하며, 임계값($C_0$)에서 jump(인과 효과)가 일어나는 것을 알 수 있습니다.
plt.scatter(data['running_var'], data['outcome'], s= 5)
plt.xlabel('running_var')
plt.ylabel('outcome')
회귀모델을 이용한 인과효과 추정
아래와 같이 식을 구성한 후 인과 효과($D_i$의 회귀계수)를 추정할 수 있습니다
$$\large{Y_i = \alpha + \rho D_i + \gamma (X_i - C_0) + \epsilon_i}$$
model1 = sms.ols('outcome ~ running_var + D', data).fit()
model1.summary().tables[1]
회귀 계수를 해석하면 다음과 같습니다
- running_var : 배정변수의 회귀 계수로, 배정변수 1단위 증가 당 결과변수 증가량
- $D$ : 인과 효과로 배정변수 임계값에서의 jump의 크기를 의미. 추정해야하는 $15$와 유사하며 p-value를 기준으로 보았을 때 유의함
이와 같이 배정변수의 임계값을 기준으로 처치 변수의 dummy를 회귀식에 추가하면 인과효과를 추정할 수 있습니다.
마치며
이상으로 Sharp RD에서 회귀모델을 활용한 인과효과 추정방법에 대해 알아보았습니다
글 읽어주셔서 감사합니다.
▼ 글이 도움이 되셨다면 아래 클릭 한번 부탁드립니다 :) ▼
반응형
'인과추론(Causal Inference)' 카테고리의 다른 글
[Causal Discovery] PC algorithm (4) | 2022.06.28 |
---|---|
MAB(Multi Armed Bandit) (2) | 2022.03.22 |
이중차분법(DID) 예제 (0) | 2021.10.05 |
불연속회귀설계(RDD) (0) | 2021.10.04 |
이중차분법(DID) (0) | 2021.10.02 |