본문 바로가기

계량경제학/인과추론의 데이터과학

Matching 예시

아래 페이지를 참고하여 작성한 페이지 입니다. 

https://theeffectbook.net/ch-Matching.html?panelset=python-code&panelset1=python-code2&panelset2=stata-code3&panelset3=python-code3&panelset4=python-code4&panelset5=python-code5&panelset6=python-code6

 

Chapter 14 - Matching | The Effect

Chapter 14 - Matching | The Effect is a textbook that covers the basics and concepts of research design, especially as applied to causal inference from observational data.

theeffectbook.net

 


문제 상황 

  • 흑인 입법자들은 흑인이 보낸 지역 내 이메일보다 < 흑인이 보낸 지역 외부 이메일에 덜 응답한다 
  • 비흑인 입법자들은 흑인이 보낸 지역 내 이메일보다 < 흑인이 보낸 지역 외부 이메일에 덜 응답한다 
  • 흑인 입법자가 흑인이 보낸 지역 내외 이메일의 응답 차이가 << 비흑인 입법자들의 응답 차이보다 적다면 
  • 입법자는 본인과 같은 사람을 돕는다는 결론을 내릴 수 있음

분석 주제 

  • 입법자가 흑인인지 여부(leg_black)가 메일 응답률에 미치는 정도(responded)에 영향을 주는가?

분석 방법

  • 입법자가 흑인인지, 백인인지에 따라 본질적인 차이가 다를 것이고, 이를 아래 3가지 변수로 control 할 수 있다고 하자. 
    • medianhhincom: 지역 평균 가계 소득 
    • blackpercent: 지역의 흑인 비율 
    • leg_democrat: 메일을 받은 입법자가 민주당 소속인지 여부 
  • 3가지 변수로 propensity score를 생성, mahalanobis 거리를 기반으로 1:1 매칭을 수행하여 ATE, ATC, ATT를 분석함 
import pandas as pd
import numpy as np
from causalinference.causal import CausalModel
from causaldata import black_politicians

br = black_politicians.load_pandas().data
Y = br['responded'].to_numpy()
D = br['leg_black'].to_numpy() 
X = br[['medianhhincom', 'blackpercent', 'leg_democrat']].to_numpy()

M = CausalModel(Y, D, X)
M.est_via_matching(weights = 'maha', matches = 1)
print(M.estimates)