GBT
한국외국어대학교Global Business & Technology
인과추론 3장 · 현대 DiD
목차 강의 홈 ↗
인과추론 강의 · 3장

현대 DiD:
시차 도입과 이중강건

수십 년간 표준이던 이원고정효과 회귀가 2018년 이후 해부되어 결함이 드러났다. 무엇이 왜 무너졌고, 무엇으로 대체되었으며, 딥러닝은 어느 문으로 들어오는가. 참값이 양수인데 추정치가 음수가 되는 역전을 직접 목격하는 실습이 들어 있다.

대학원 딥러닝 · 인과추론 모듈5개 절 + 실습 2종해설 · 퀴즈 포함원문 출처 링크
0
2018–2021, 계량경제학

수십 년의 표준이 4년 만에 해부되었다

무너진 것은 DiD의 논리가 아니라, 그 논리를 자동으로 구현해 준다고 믿었던 회귀식이었다.

도입 · 한 장면

"당신의 추정치는 무엇의 평균입니까"

2018년, 앤드루 굿맨-베이컨(Andrew Goodman-Bacon)이 한 편의 워킹페이퍼를 올렸다(2021년 Journal of Econometrics 출간). 내용은 단순한 산수였다. 지역마다 정책 도입 시점이 다른 자료에서 이원고정효과(TWFE) 회귀를 돌리면, 그 계수는 자료 안의 모든 2×2 비교를 이상한 가중치로 섞은 평균이라는 것. 그리고 그 안에는 이미 처치된 집단을 대조군으로 쓰는 비교가 반드시 섞여 있다는 것.

거의 동시에 드 셰즈마르탱과 도트푀유(2020), 캘러웨이와 산타나(2021), 선과 에이브러햄(2021)이 같은 환부를 다른 각도에서 절개했다. 결론은 하나로 모였다. 처치효과가 시간에 따라 변하면 TWFE 추정치는 개별 효과들의 평균이 아니며, 모든 개별 효과가 양수인데 전체 추정치가 음수가 되는 역전까지 가능하다. 이 일련의 사건을 계량경제학자들은 "DiD 혁명"이라 부른다.

충격은 방법론 학계에 머물지 않았다. 시차 도입 DiD는 응용 실증 연구에서 가장 많이 쓰이는 설계였으므로, 수천 편의 기존 논문이 잠재적 재검토 대상이 되었다. 베이커·라커·왕(2022)은 재무 분야의 대표적 응용들을 최신 추정량으로 재분석해, 널리 인용되던 결과가 약해지거나 뒤집히는 사례를 보였다. 1~2장에서 배운 2×2 DiD는 무사하다. 문제는 그것을 여러 시점·여러 집단으로 확장하는 특정한 방식에 있었다.

TWFE는 어디서 무너지는가어떤 비교가 몰래 섞이고, 왜 음의 가중치가 붙는지를 분해로 추적한다
무엇으로 대체하는가비교를 명시적으로 통제하는 4가지 현대 추정량의 원리와 구현
딥러닝은 어느 문으로 들어오는가이중강건 구조가 관문이다. 교차적합 DML-DiD까지 코드로 내려간다
더 읽기

이 혁명의 사회학이 흥미롭다. TWFE의 결함은 새로 생긴 것이 아니라 처음부터 있었다. 수십 년간 아무도 계수의 정체를 묻지 않았을 뿐이다. "회귀가 돌아가고 계수가 나온다"는 사실과 "그 계수가 내가 원하는 추정대상(estimand)의 추정치다"라는 주장 사이의 간극이 이렇게 오래 방치될 수 있다는 것이 첫 교훈이다. 혁명 이후의 문헌이 한결같이 추정대상을 먼저 정의하고 추정량을 나중에 고르라고 요구하는 이유다.

규모감을 하나 적어 두면, 굿맨-베이컨(2021)은 2012~2019년 American Economic Review 게재 논문 중 상당수가 시차 도입 변이를 이용한 DiD였다고 집계한다. 베이커·라커·왕(2022)의 재분석은 그 잠재적 파장이 가설이 아님을 보여준 사례 연구다. 다만 균형을 위해 적자면, 재검토가 곧 전면 무효를 뜻하지는 않는다. 처치효과가 시간에 걸쳐 안정적이면 TWFE 편향은 작고, 실제로 많은 논문의 결론은 최신 추정량으로도 유지되었다. 문제는 "어느 쪽인지 확인하지 않고는 알 수 없다"는 데 있다.

출처 Goodman-Bacon, "Difference-in-Differences with Variation in Treatment Timing", Journal of Econometrics 225(2), 2021 (워킹페이퍼 2018) · Baker, Larcker & Wang, "How Much Should We Trust Staggered Difference-in-Differences Estimates?", Journal of Financial Economics 144(2), 2022 · Roth, Sant'Anna, Bilinski & Poe, "What's Trending in Difference-in-Differences?", Journal of Econometrics 235(2), 2023, arxiv.org/abs/2201.01194

1
staggered adoption

시차 도입과 TWFE: 표준의 성립과 붕괴

TWFE는 2×2의 자연스러운 확장처럼 보였다. 실제로는 정체불명의 가중치로 여러 비교를 섞는 기계였다.

추정식

왜 모두가 이 식을 썼는가

현실의 정책은 지역마다 도입 시점이 다르다(staggered adoption). 이때 표준 관행은 개체 고정효과와 시점 고정효과를 넣은 이원고정효과(two-way fixed effects, TWFE) 회귀였다.

\[ Y_{it} = \alpha_i + \lambda_t + \delta\, D_{it} + \varepsilon_{it} \]

이 식이 수십 년간 표준이었던 이유는 분명하다. 2×2에서 배운 문법과 정확히 이어진다. \(\alpha_i\)가 집단 간 수준 차이를, \(\lambda_t\)가 공통 시간 충격을 흡수하니, 1장의 "두 번 빼기"를 회귀가 자동으로 일반화해 주는 것처럼 보인다. 코드 한 줄이면 되고, 클러스터 표준오차와 공변량 통제가 같은 문법 안에서 해결된다. 실제로 처치 시점이 하나뿐이면(모두 같은 시점에 처치) 이 식은 2×2 DiD와 정확히 같은 값을 준다.

문제는 처치 시점이 여럿일 때다. OLS의 \(\hat\delta\)는 자료 안에서 만들 수 있는 모든 2×2 비교의 가중평균으로 분해되는데, 그 가중치는 인과적 의미가 아니라 처치변수의 분산이 정한다. 표본이 크고 처치 기간이 표본 중앙에 걸친 비교일수록 큰 가중치를 받는다. 그리고 그 비교들 중에는 이미 처치된 집단을 나중 처치 집단의 대조군으로 쓰는 금지된 비교가 섞여 있다.

붕괴의 조건

처치효과가 시점 간에 동일하면(정적 효과) 금지된 비교도 우연히 옳은 답을 주고, TWFE는 무사하다. 그러나 효과가 처치 후 시간에 따라 변하면(동적 효과) 일부 비교에 음(−)의 가중치가 붙는다. 극단적으로는 모든 개체·시점의 효과가 양수인데 \(\hat\delta\)가 음수로 나올 수 있다(Goodman-Bacon 2021; de Chaisemartin & D'Haultfœuille 2020).

대부분의 현실적 처치는 동적이다. 정책 효과는 서서히 자라거나, 도입 직후 튀었다가 잦아든다. 즉 붕괴 조건은 예외가 아니라 기본값이다.

더 읽기

"음의 가중치"라는 말을 처음 들으면 회귀의 버그처럼 들리지만, OLS 입장에서는 정당한 동작이다. TWFE 회귀는 \(D_{it}\)의 이원 within 변환 잔차에 결과를 사영하는데, 이미 처치된 관측치의 잔차 \(\tilde D_{it}\)는 음수가 될 수 있다. 처치를 일찍 받은 개체는 개체평균 \(\bar D_i\)가 크므로, 처치 후반부 관측치에서 \(D_{it}-\bar D_i-\bar D_t+\bar D\)가 0 아래로 내려가는 것이다. 그 관측치의 결과가 클수록(동적 효과가 자랄수록) \(\hat\delta\)는 오히려 끌려 내려간다. 실습에서 이 메커니즘을 그대로 재현한다.

드 셰즈마르탱과 도트푀유(2020)는 이 문제를 정량 진단하는 도구를 함께 내놓았다. 각 처치 관측치가 받는 가중치를 계산해 음수 가중치의 비중과 합을 보고하는 것이다(Stata·R twowayfeweights). 자기 논문의 TWFE 추정치가 어느 정도 위험한지 사후에라도 점검할 수 있다는 점에서, 기존 논문 재검토의 표준 도구가 되었다.

출처 Goodman-Bacon, Journal of Econometrics 225(2), 2021 · de Chaisemartin & D'Haultfœuille, "Two-Way Fixed Effects Estimators with Heterogeneous Treatment Effects", American Economic Review 110(9), 2020, arxiv.org/abs/1803.08807

2
분해 정리

Goodman-Bacon 분해: 금지된 비교의 해부

TWFE 안에 숨은 2×2들을 전부 꺼내 보면, 문제는 단 한 종류의 비교에서 나온다.

개념도

세 종류의 2×2, 그리고 네 번째

코호트 A(t=3 처치), 코호트 B(t=6 처치), 미처치 집단 N이 있는 패널에서 TWFE가 암묵적으로 수행하는 2×2 비교를 전부 나열해 보자.

t=123 456 78 코호트 A t=3부터 처치 · 효과가 계속 자라는 중 코호트 B t=6 이전에는 아직 미처치 = 깨끗한 대조군 자격 미처치 N A vs N  (전 기간) 깨끗함 — 대조군이 끝까지 미처치 B vs N  (전 기간) 깨끗함 — 대조군이 끝까지 미처치 A vs B  (t≤5 창) 깨끗함 — B가 아직 미처치(not-yet-treated) B vs A  (t≥6 창) 금지된 비교 — "대조군" A가 이미 처치 상태 TWFE 추정치 = ①+②+③+④의 분산 기반 가중평균. ④의 몫이 동적 효과를 만나면 전체를 오염시킨다.
그림 1. 네 비교 중 ①~③은 대조군이 해당 창에서 미처치 상태이므로 1장의 2×2 논리가 그대로 성립한다. 문제는 ④ 하나다. B가 처치되는 t=6 이후 A는 이미 3기째 처치 중이고 효과가 계속 자라는 중이다. 이 그림에서 읽어야 할 것은 "금지된 비교가 예외적 상황이 아니라 시차 도입 자료의 구조상 반드시 생긴다"는 점이다.

왜 ④가 치명적인가. DiD는 대조군의 변화량으로 "정책 없는 변화량"을 대신 측정한다. 그런데 ④의 창(t≥6)에서 A의 변화량은 공통 추세에 자기 자신의 처치효과가 자라는 몫이 얹혀 있다. B의 변화량에서 A의 변화량을 빼는 순간, B의 효과에서 A의 효과 증가분이 통째로 차감된다. 효과가 동적일수록 차감이 커지고, 충분히 크면 부호가 뒤집힌다.

  1. early vs late (③): 늦은 코호트의 처치 전 구간을 대조군으로 쓴다. 이 창에서 B는 무처치이므로 문제없다.
  2. late vs early (④): 이른 코호트의 처치 후 구간을 대조군으로 쓴다. A의 추세에는 이미 \(\tau(s)\)의 증가분이 실려 있어, 차분이 효과를 빼먹는다.
  3. treated vs never (①②): 미처치 집단이 있으면 언제나 깨끗하다. 미처치 집단이 아예 없는 자료(모두가 언젠가 처치)에서는 ③④만 남으므로 위험이 더 크다.
더 읽기

정확히 하자. 굿맨-베이컨 분해에서 ④가 편향을 만드는 것은 효과가 시간에 따라 변할 때다. 효과가 처치 직후부터 일정하게 유지된다면 A의 처치 후 추세는 공통 추세와 평행하고, ④도 옳은 답을 준다. 즉 금지된 비교의 죄목은 "처치된 집단을 썼다" 자체가 아니라 "효과의 변화가 대조군 추세에 실리는 것을 막을 수 없다"이다. 이 구분이 중요한 이유는, 다음 절의 해법들이 전부 "④를 버리고 ①~③만 쓰는 방법"으로 요약되기 때문이다.

분해는 진단 도구로도 쓸 수 있다. R·Stata의 bacondecomp는 자기 자료의 TWFE 추정치를 비교 유형별 가중치와 추정치로 쪼개 보여준다. ④ 유형의 가중치 합이 작으면 TWFE와 현대 추정량의 차이도 작을 것이라 예상할 수 있고, 크면 결과 전체를 현대 추정량으로 다시 내야 한다. "내 계수는 무엇의 평균인가"를 수치로 답하게 만든 것이 이 분해의 공헌이다.

생각해 볼 질문

본인 연구에서 쓸 법한 패널을 떠올려 보자. 미처치 집단이 존재하는가, 아니면 모두가 언젠가 처치되는가? 후자라면 이 절의 어느 비교 유형에 의존하게 되는가?

출처 Goodman-Bacon, Journal of Econometrics 225(2), 2021 · Cunningham, Causal Inference: The Mixtape, Yale UP, 2021, DiD 장, mixtape.scunning.com

3
2020–2024

현대적 해법 4종: 비교를 직접 통제한다

네 추정량의 공통 원리는 하나다. 어떤 관측치를 대조군으로 쓸지 회귀에 맡기지 않고 연구자가 명시한다.

비교표

같은 병, 네 개의 처방

출발점은 모두 같다. 추정대상을 코호트 \(g\)(처치 시작 시점)와 달력 시점 \(t\)의 격자 위에 정의한 뒤, 깨끗한 비교만으로 각 칸을 채운다.

\[ ATT(g,t) = \mathbb{E}\big[\,Y_{it}(g) - Y_{it}(0)\;\big|\;G_i = g\,\big] \]
추정량대조군 선택산출물구현
Callaway &
Sant'Anna (2021)
not-yet-treated(아직 미처치) 또는 never-treated만. 각 \(ATT(g,t)\)를 2×2로 따로 추정\(ATT(g,t)\) 격자 → event study·전체 ATT 등 원하는 방식으로 가중 집계R did,
Python csdid
Sun &
Abraham (2021)
never-treated(없으면 최후 처치 코호트)코호트×상대시점 상호작용을 가중 결합한 오염 없는 event study 계수(IW)R fixest::sunab,
Stata eventstudyinteract
Borusyak, Jaravel
& Spiess (2024)
모든 무처치 관측치로 \(\alpha_i+\lambda_t\)를 적합해 반사실을 대체(imputation)관측치별 효과 \(\hat\tau_{it}=Y_{it}-\hat Y_{it}(0)\)와 그 임의 집계. 가정하에 효율적R didimputation,
Stata did_imputation
de Chaisemartin &
D'Haultfœuille (2020)
처치 상태가 막 바뀐 집단 vs 같은 기간 상태 유지 집단음의 가중치 진단 + 강건 추정치 \(DID_M\). 처치 철회(스위치 오프)도 허용R·Stata DIDmultiplegt, twowayfeweights

실무 지침은 이제 명확하다. 시차 도입 자료에서 TWFE 하나만 보고하는 논문은 심사 통과가 어렵다. 표준적 보고 방식은 (1) 추정대상을 명시하고, (2) 위 추정량 중 하나 이상으로 주 결과를 내고, (3) TWFE와의 차이를 진단(Bacon 분해, 음의 가중치 비중)과 함께 보이는 것이다.

더 읽기

넷 중 무엇을 고를까. 기본값으로 널리 쓰이는 것은 Callaway & Sant'Anna다. 추정대상이 \(ATT(g,t)\)로 투명하고, 조건부 평행추세(다음 절)와 이중강건 추정을 처음부터 지원하며, 집계 방식을 연구 질문에 맞게 고를 수 있다. Sun & Abraham은 기존 event study 회귀의 문법을 유지하고 싶을 때 자연스럽다. 사실 이 추정량은 CS의 특수한 집계와 수치적으로 밀접하다. Borusyak 외의 imputation은 평행추세를 모든 시점·모든 코호트에 부과하는 대신 그 가정 하에서 가장 효율적이다. 가정을 세게 사고 분산을 싸게 사는 거래인 셈이다. dCDH는 처치가 켜졌다 꺼지는(non-absorbing) 일반 상황까지 다루는 가장 포괄적인 틀이고, 진단 도구로서의 가치가 독보적이다.

공통 주의점 하나. 이 추정량들은 금지된 비교를 제거할 뿐, 평행추세 가정 자체를 대신 검증해 주지 않는다. 2장의 사전 추세 진단과 민감도 분석은 여기서도 그대로 필요하다. "최신 추정량을 썼다"가 "식별이 성립한다"의 동의어가 아니라는 점은 아무리 반복해도 지나치지 않다.

출처 Callaway & Sant'Anna, "Difference-in-Differences with Multiple Time Periods", Journal of Econometrics 225(2), 2021, arxiv.org/abs/1803.09015 · Sun & Abraham, Journal of Econometrics 225(2), 2021, arxiv.org/abs/1804.05785 · Borusyak, Jaravel & Spiess, "Revisiting Event Study Designs", Review of Economic Studies, 2024, arxiv.org/abs/2108.12419

4
조건부 평행추세

공변량과 이중강건 DiD

평행추세가 무조건적으로는 깨져도, 공변량을 조건부로 하면 살아나는 경우가 많다. 그 문을 여는 열쇠가 이중강건 구조다.

식별 가정의 완화

둘 중 하나만 맞아도: DR-DiD

업종 구성이 다른 두 지역은 전체로는 추세가 다르지만, 같은 업종끼리는 나란히 움직일 수 있다. 이럴 때 평행추세를 관측 가능한 특성 \(X\)의 조건부로 완화한다.

\[ \mathbb{E}\big[\Delta Y(0) \mid X,\, D=1\big] \;=\; \mathbb{E}\big[\Delta Y(0) \mid X,\, D=0\big] \]

조건부 평행추세 아래에서는 세 가지 추정 전략이 있고, 각각 무언가를 모형화해야 한다.

전략모형화 대상약점
결과회귀 (OR)대조군의 결과 변화 \(m(X)=\mathbb{E}[\Delta Y\mid X, D=0]\)결과모형이 틀리면 편향
역확률가중 (IPW)성향점수 \(p(X)=P(D=1\mid X)\)로 대조군을 재가중성향점수모형이 틀리면 편향
이중강건 (DR)둘 다 추정해 하나의 스코어에 결합둘 중 하나만 맞아도 일치추정

산타나와 자오(2020)의 DR-DiD 추정량이 이 계열의 표준이다. 성향점수 모형과 결과회귀 모형 중 하나만 올바르게 설정되어도 ATT를 일치추정하고, 둘 다 맞으면 준모수적 효율 한계(semiparametric efficiency bound)를 달성한다. 즉 보험이 공짜에 가깝다. R DRDID가 참조 구현이고, 앞 절의 did 패키지는 내부적으로 이것을 \(ATT(g,t)\)별로 호출한다(est_method="dr").

왜 이 절이 관문인가

DR 스코어는 Neyman 직교성을 만족한다. 성향점수와 결과모형의 추정 오차가 ATT 추정에 1차(first-order)로는 전파되지 않고, 두 오차의 곱으로만 들어온다는 뜻이다. 그래서 이 두 모형(nuisance)을 로짓·선형회귀 대신 신경망이나 부스팅 같은 유연한 학습기로 갈아 끼워도 추론이 무너지지 않는다. 다음 절의 DML-DiD가 정확히 이 문으로 들어온다.

더 읽기

"둘 중 하나만 맞아도"의 직관은 스코어의 구조에 있다. DR 스코어는 IPW 항에서 결과모형 예측 \(m(X)\)을 빼는 형태, 즉 \(\big(w_1 - w_0(X)\big)\big(\Delta Y - m(X)\big)\) 꼴이다. 성향점수가 맞으면 가중치가 두 집단의 \(X\) 분포를 정렬해 주므로 \(m\)이 틀려도 그 오차가 양쪽에서 상쇄되고, 결과모형이 맞으면 \(\Delta Y - m(X)\)의 조건부 평균이 대조군에서 0이므로 가중치가 틀려도 편향이 남지 않는다. 어느 쪽이 살아남을지 사전에 모르기 때문에 둘 다 들고 가는 것이다.

주의할 것은 이 강건성이 모형 설정 오류에 대한 보험이지 식별 가정에 대한 보험이 아니라는 점이다. 조건부 평행추세 자체가 깨져 있으면 OR·IPW·DR 모두 틀린 값으로 수렴한다. 또한 조건부화에는 1장에서 본 "나쁜 통제" 규칙이 그대로 적용된다. \(X\)는 처치 이전에 결정된 변수여야 하며, 처치의 영향을 받는 변수를 조건부로 하면 효과의 일부를 지워 버린다.

출처 Sant'Anna & Zhao, "Doubly Robust Difference-in-Differences Estimators", Journal of Econometrics 219(1), 2020, arxiv.org/abs/1812.01723 · Callaway & Sant'Anna, Journal of Econometrics 225(2), 2021.

5
DML-DiD

딥러닝과의 결합: 추정은 맡기고 식별은 지킨다

공변량이 수백 개면 로짓과 선형회귀가 먼저 무너진다. 신경망을 nuisance에 쓰되, 교차적합이 과적합의 누수를 막는다.

설계 예제

소상공인 디지털 전환 바우처, 공변량 수백 개

어떤 지자체가 소상공인 디지털 전환 바우처를 도입했고 매출 효과를 알고 싶다. 신청은 자발적이므로 선택 편향이 있다. 업종, 상권 유동인구, 점포 연령, 120개월치 카드매출 이력, 인근 경쟁점 수 등 공변량이 수백 개이고 비선형으로 얽혀 있다. 로짓 성향점수와 선형 결과회귀로는 "올바른 모형 설정"을 기대하기 어렵다.

해법은 §4의 DR 스코어에 머신러닝을 꽂는 것이다. 체르노주코프 외(2018)의 DML(Double/Debiased Machine Learning) 일반이론을 DiD에 적용한 것이 창(Chang 2020)이다. 절차는 세 단계다.

  1. nuisance를 ML로 추정한다. 결과모형 \(\hat m(X)=\widehat{\mathbb{E}}[\Delta Y\mid X, D=0]\)과 성향점수 \(\hat p(X)\)를 각각 신경망(또는 그래디언트 부스팅)으로 학습한다. 어떤 학습기든 수렴 속도가 너무 느리지만 않으면 된다.
  2. 교차적합(cross-fitting)한다. 표본을 K겹으로 나누고, 각 겹의 예측값은 그 겹을 제외한 나머지로 학습한 모형에서 얻는다. 자기 표본에 과적합된 예측 오차가 인과 추정으로 새는 것을 끊는 장치다.
  3. DR 스코어에 대입한다. 겹 밖 예측값으로 Sant'Anna & Zhao 스코어를 계산해 ATT와 영향함수 기반 표준오차를 얻는다. 직교성 덕분에 \(\sqrt{n}\) 수렴과 정상적인 신뢰구간이 확보된다.

역할 분담을 흐리지 말 것. 딥러닝은 DiD를 대체하지 않는다. 어떤 비교가 인과를 드러내는가(식별)는 여전히 연구 설계의 몫이고, 신경망은 그 설계 안에서 두 보조 함수의 추정만 맡는다. 검증 손실이 낮다는 것과 ATT가 올바르게 식별되었다는 것은 완전히 별개의 진술이다.

더 읽기

교차적합이 왜 필수인지 한 번 더 뜯어 보자. 같은 표본으로 \(\hat m\)을 학습하고 같은 표본의 스코어까지 계산하면, \(\hat m\)의 과적합 오차는 그 표본의 잔차 \(\Delta Y - \hat m(X)\)와 체계적으로 상관된다. 유연한 학습기일수록 이 상관이 크고, 그것이 정규화 편향과 함께 ATT 추정치에 그대로 전파된다. 겹 밖 예측은 이 상관을 구조적으로 0으로 만든다. 직교 스코어가 "오차의 곱만 남긴다"면, 교차적합은 "그 오차들이 서로 독립인 표본에서 왔음"을 보장한다. 둘은 한 세트다.

실전 감각 두 가지. 첫째, 성향점수는 반드시 잘라낸다(trimming, 예: [0.01, 0.99]). \(\hat p\)가 1에 붙은 관측치 하나가 IPW 가중치를 폭발시켜 추정 전체를 흔들 수 있다. 겹치는 영역(overlap)이 얇다는 신호이기도 하므로, 잘라낸 비중은 보고 대상이다. 둘째, 이 모든 기계 장치가 조건부 평행추세를 만들어 주지는 않는다. 신경망을 쓰든 안 쓰든 event study로 사전 추세를 먼저 보이는 순서는 바뀌지 않는다.

출처 Chernozhukov 외, "Double/Debiased Machine Learning for Treatment and Structural Parameters", The Econometrics Journal 21(1), 2018, arxiv.org/abs/1608.00060 · Chang, "Double/Debiased Machine Learning for Difference-in-Differences Models", The Econometrics Journal 23(2), 2020.

실습 · 코드형

손끝으로 옮기기: csdid와 교차적합 DR-DiD

한 줄 목표: §3의 Callaway & Sant'Anna와 §5의 교차적합 DR-DiD가 각각 코드 몇 줄로 내려오는지 확인한다. 두 골격 모두 그대로 복사해 본인 자료에 얹을 수 있다.

LAB · 코드형 ①

시차 도입: Callaway & Sant'Anna 추정

gname은 "처음 처치된 시점"이다. 미처치 개체는 0으로 코딩한다. est_method="dr"이 §4의 이중강건 추정을 \(ATT(g,t)\)마다 수행한다.

# --- R: 원저자 구현 --------------------------------------- # install.packages("did") # library(did) # out <- att_gt(yname = "y", # 결과변수 # tname = "t", # 달력 시점 # idname = "id", # 개체 식별자 # gname = "first_treat", # 코호트 = 최초 처치 시점 (미처치=0) # data = dat, # est_method = "dr") # 이중강건 (Sant'Anna & Zhao) # aggte(out, type = "dynamic") # event study로 집계 # --- Python 이식판 ----------------------------------------- # pip install csdid from csdid.att_gt import ATTgt res = ATTgt(yname="y", tname="t", idname="id", gname="first_treat", data=dat).fit(est_method="dr") res.aggte(typec="dynamic") # 상대시점별 효과: 처치 전 계수는 0 근처여야 한다

관찰 포인트 — dynamic 집계표에서 처치 이전 상대시점(음수 구간)의 계수들이 0 근처인지 먼저 본다. 그다음 TWFE 한 줄(y ~ D + 개체·시점 고정효과)과 전체 ATT를 비교해 보라. 처치효과가 동적인 자료일수록 두 값이 벌어지는 것, 그 벌어짐이 바로 §2에서 본 ④번 비교의 몫이라는 것이 관찰 대상이다.

LAB · 코드형 ②

교차적합 DR-DiD 골격 (DML 스타일)

X는 고차원 공변량, D는 처치 지시자, dY는 전후 변화량이다. 20줄 골격이지만 §5의 3단계가 전부 들어 있다.

from sklearn.model_selection import KFold from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier kf = KFold(5, shuffle=True, random_state=0) psi = np.zeros(len(dY)) # 관측치별 DR 스코어를 담을 그릇 for tr, te in kf.split(X): # te 겹의 예측은 tr 겹으로만 학습 → 누수 차단 # [1단계] nuisance 2개를 ML로: 대조군 결과모형 m, 성향점수 p m_hat = GradientBoostingRegressor().fit(X[tr][D[tr]==0], dY[tr][D[tr]==0]) p_hat = GradientBoostingClassifier().fit(X[tr], D[tr]) # [2단계] 겹 밖(out-of-fold) 예측. clip은 IPW 가중치 폭발 방지(trimming) m_te = m_hat.predict(X[te]) p_te = np.clip(p_hat.predict_proba(X[te])[:, 1], .01, .99) # [3단계] Sant'Anna & Zhao (2020) DR 스코어: (처치 가중 - 재가중 대조) x 잔차 w1 = D[te] / D.mean() # 처치군 가중치 w0 = (p_te*(1-D[te])/(1-p_te)) # 대조군을 처치군처럼 재가중 w0 = w0 / w0.mean() psi[te] = (w1 - w0) * (dY[te] - m_te) # m이 틀려도 p가 맞으면 상쇄, 역도 성립 att = psi.mean() se = psi.std(ddof=1) / np.sqrt(len(psi)) # 영향함수 기반 표준오차 print(f"ATT = {att:.3f} (SE {se:.3f})")

관찰 포인트 — 두 가지를 스스로 실험해 보라. ① kf.split를 없애고 전체 표본으로 학습·예측을 겹치게 만들면(교차적합 제거) ATT가 어느 방향으로 얼마나 흔들리는지, 특히 학습기의 트리 깊이를 키울수록 왜곡이 커지는지 본다. ② clip 범위를 (.001, .999)로 풀면 SE가 어떻게 변하는지 본다. 열린 과제: 두 학습기를 PyTorch MLP로 교체해도 구조가 그대로임을 확인하라. 실전에서는 검증된 구현(DRDID, doubleml, econml)을 우선 사용한다.

출처 Callaway & Sant'Anna (2021)의 R 패키지 did 문서 · Sant'Anna & Zhao (2020) · Chernozhukov 외 (2018).

6
조작형 실습

금지된 비교 실험실

노이즈 없는 결정론적 패널에서, 동적 효과 하나만으로 TWFE가 참값 아래로 미끄러지고 끝내 부호가 뒤집히는 것을 목격한다.

실습 · TWFE 시뮬레이터

모든 효과가 양수인데 추정치는 음수

한 줄 목표: §1~§2의 주장, 즉 "동적 효과 + 시차 도입 = TWFE 붕괴"를 노이즈 없는 최소 패널에서 정확한 수치로 확인한다. 코호트 A는 t=3, 코호트 B는 t=6에 처치되고(T=8), 처치 후 경과기간 \(s\)의 효과는 \(\tau(s) = \tau_0 + \text{slope}\times s\)다. TWFE는 실제 이원 within 변환으로 계산한다.

LAB · 조작형

2코호트 패널: 참값 vs TWFE

왼쪽은 두 코호트의 처치효과 경로, 음영은 B가 처치되어 "이미 처치된 A"가 대조군 노릇을 하게 되는 금지된 비교 구간이다. 오른쪽 막대가 참값(처치 관측치들의 평균 효과)과 TWFE 추정치다.

코호트 A의 효과 경로 (t=3 처치) 코호트 B의 효과 경로 (t=6 처치)

조작 안내 — ① slope=0에서 \(\tau_0\)만 움직여 두 값이 늘 일치함을 확인하라. ② \(\tau_0=1\)로 두고 slope를 0에서 천천히 키우며 TWFE가 참값 아래로 미끄러지는 것을 보라. ③ slope를 1.3 이상으로 올려 역전을 목격하라.
관찰 포인트 — 첫째, slope=0이면 TWFE=참값. 정적 효과에서는 금지된 비교도 우연히 옳다. 둘째, slope가 커질수록 참값은 \(\tau_0+2\cdot\text{slope}\)로 오르는데 TWFE는 \(\tau_0-0.8\cdot\text{slope}\)로 내려간다. 벌어지는 방향이 반대라는 것이 핵심이다. 셋째, \(\tau_0=1\)에서 slope가 1.25를 넘는 순간 모든 개별 효과가 양수인데도 TWFE가 음수가 된다. 이 역전이 화면에 뜨면 이 장의 절반을 몸으로 이해한 것이다.

더 읽기

이 실험실에는 노이즈가 한 점도 없다. 표본 오차, 모형 설정 오류, 평행추세 위반 전부 없다. 자료는 \(Y_{it}=\alpha_i+\lambda_t+\tau(s)D_{it}\)를 글자 그대로 따르므로 TWFE 회귀식은 참모형과 거의 같은 꼴이다. 다른 것은 단 하나, 참모형의 효과는 \(\tau(s)\)로 변하는데 회귀식은 상수 \(\delta\) 하나로 요약하려 한다는 점이다. 그 요약이 음의 가중치를 낳는다. 즉 여기서 보는 편향은 통계적 불운이 아니라 추정량의 대수적 성질이며, 표본을 아무리 늘려도 사라지지 않는다.

편향의 크기가 slope에 정확히 비례(이 설계에서 \(-2.8\times\text{slope}\))하는 것도 우연이 아니다. 금지된 비교 창(t=6~8)에서 A의 효과가 자라는 속도가 slope이고, TWFE는 그 증가분을 가중치에 따라 차감하기 때문이다. 실제 연구에서 slope에 해당하는 것은 "정책 효과가 자리 잡는 데 걸리는 시간"이다. 효과가 느리게 자라는 정책일수록, 그리고 도입 시점이 넓게 흩어진 자료일수록 TWFE는 위험해진다.

출처 이 시뮬레이터의 설정은 Goodman-Bacon (2021)과 de Chaisemartin & D'Haultfœuille (2020)의 예제를 최소화한 것이다. 계산은 이원 within 변환 후 \(\mathrm{cov}(\tilde Y,\tilde D)/\mathrm{var}(\tilde D)\).

7
이해 점검

퀴즈와 핵심 정리

먼저 스스로 답한 뒤 펼쳐서 확인하라.

널리 퍼진 오해

"고정효과를 넣었으니 교란은 통제되었다"

정면 반박

고정효과가 통제하는 것은 정확히 두 가지뿐이다. \(\alpha_i\)는 시간에 걸쳐 변하지 않는 개체 특성을, \(\lambda_t\)는 모든 개체에 공통인 시간 충격을 지운다. 시간에 따라 변하는 개체별 교란(처치군만의 고유 추세)은 어느 쪽도 지우지 못한다. 이것이 1~2장의 교훈이었다.

이 장은 더 나쁜 소식을 추가했다. 시차 도입 자료에서는 교란이 하나도 없어도 TWFE가 틀린다. 위 실습의 자료는 평행추세가 완벽히 성립하는 결정론적 패널이었지만, 동적 효과만으로 추정치의 부호가 뒤집혔다. "고정효과 = 안전"이라는 믿음은 교란에 대해서도, 집계에 대해서도 성립하지 않는 이중의 착각이다.

퀴즈

시차 도입 자료에 TWFE를 그대로 쓰면 안 되는 이유를 "비교"의 관점에서 한 문장으로 설명하라.
TWFE 추정치에는 이미 처치된 집단을 나중 처치 집단의 대조군으로 쓰는 "금지된 비교"가 섞이는데, 처치효과가 시간에 따라 변하면 이 비교에 음의 가중치가 붙어 전체 추정치가 개별 효과들의 방향과도 달라질 수 있기 때문이다(Goodman-Bacon 분해).
Callaway & Sant'Anna는 \(ATT(g,t)\)를 추정할 때 대조군을 not-yet-treated(아직 미처치)로 제한한다. 왜 이 제한만으로 §2의 문제가 사라지는가?
§2의 편향은 대조군의 추세에 그 대조군 자신의 처치효과 변화가 실려 있을 때 생긴다. 아직 처치되지 않은 집단은 정의상 해당 창에서 처치효과가 0이므로, 그 변화량은 순수한 무처치 추세만 담는다. 즉 "금지된 비교(④)"를 원천 배제하고 깨끗한 비교(①~③)만 남기는 것이다. 대가도 있다. 곧 처치될 집단을 대조군으로 쓰므로 무예견(no anticipation) 가정이 더 무거워지고, 나중 시점일수록 쓸 수 있는 대조군이 줄어든다.
DR-DiD의 "둘 중 하나만 맞아도 된다"는 정확히 무엇에 대한 보험이고, 무엇에 대한 보험이 아닌가?
성향점수 모형과 결과회귀 모형이라는 두 모형 설정 중 하나가 틀려도 ATT를 일치추정한다는, 모형 설정 오류(misspecification)에 대한 보험이다. 반면 식별 가정에 대한 보험이 아니다. 조건부 평행추세나 무예견이 깨져 있으면 OR·IPW·DR 세 추정량 모두 같은 틀린 값으로 수렴한다. 또한 겹침(overlap)이 없어 성향점수가 0·1에 붙는 문제도 DR이 구제하지 못한다.
DML에서 교차적합(cross-fitting)이 없으면 어떤 문제가 생기는가?
같은 표본으로 nuisance 모형을 학습하고 그 예측값으로 ATT까지 계산하면, 과적합된 예측 오차가 잔차와 상관되어 정규화 편향과 과적합 편향이 인과 추정치에 그대로 전파된다. 겹 밖 예측을 쓰면 이 상관이 끊어져, 유연한 학습기를 쓰면서도 \(\sqrt{n}\) 수렴과 정상적인 신뢰구간을 확보할 수 있다.
핵심 정리

하나. TWFE의 실패는 교란 때문이 아니라 집계 때문이다. 회귀는 자료 안의 모든 2×2를 분산 기반 가중치로 섞을 뿐, 어느 비교가 깨끗한지 알지 못한다. 추정대상을 먼저 정의하고 비교를 명시적으로 고르는 것이 현대 DiD의 출발점이다.

둘. 해법 4종의 공통 원리는 "이미 처치된 대조군을 버린다"는 한 문장이다. 무엇을 산출하고 무엇을 가정하는지가 다를 뿐이다.

셋. 이중강건 구조는 모형 오류에 대한 보험이자 머신러닝으로 가는 관문이다. 직교 스코어와 교차적합이 갖춰졌을 때만 신경망을 nuisance에 써도 추론이 살아남는다. 식별은 끝까지 설계의 몫이다.

8
원문 링크

참고문헌

연도는 출간 기준이며, 워킹페이퍼 공개 연도가 다른 경우 본문에 병기했다. 링크는 확인된 것만 달았다.

현대 DiD (다기간 · 시차 도입)

  1. Goodman-Bacon, A. (2021). Difference-in-Differences with Variation in Treatment Timing. Journal of Econometrics, 225(2), 254–277.
  2. Callaway, B., & Sant'Anna, P. H. C. (2021). Difference-in-Differences with Multiple Time Periods. Journal of Econometrics, 225(2), 200–230. arxiv.org/abs/1803.09015
  3. Sun, L., & Abraham, S. (2021). Estimating Dynamic Treatment Effects in Event Studies with Heterogeneous Treatment Effects. Journal of Econometrics, 225(2), 175–199. arxiv.org/abs/1804.05785
  4. de Chaisemartin, C., & D'Haultfœuille, X. (2020). Two-Way Fixed Effects Estimators with Heterogeneous Treatment Effects. American Economic Review, 110(9), 2964–2996. arxiv.org/abs/1803.08807
  5. Borusyak, K., Jaravel, X., & Spiess, J. (2024). Revisiting Event Study Designs: Robust and Efficient Estimation. Review of Economic Studies. arxiv.org/abs/2108.12419
  6. Rambachan, A., & Roth, J. (2023). A More Credible Approach to Parallel Trends. Review of Economic Studies, 90(5), 2555–2591.
  7. Roth, J., Sant'Anna, P. H. C., Bilinski, A., & Poe, J. (2023). What's Trending in Difference-in-Differences? A Synthesis of the Recent Econometrics Literature. Journal of Econometrics, 235(2). arxiv.org/abs/2201.01194 — 이 장 전체의 필독 서베이.

이중강건 · 머신러닝 결합

  1. Sant'Anna, P. H. C., & Zhao, J. (2020). Doubly Robust Difference-in-Differences Estimators. Journal of Econometrics, 219(1), 101–122. arxiv.org/abs/1812.01723
  2. Chang, N.-C. (2020). Double/Debiased Machine Learning for Difference-in-Differences Models. The Econometrics Journal, 23(2), 177–191.
  3. Chernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W., & Robins, J. (2018). Double/Debiased Machine Learning for Treatment and Structural Parameters. The Econometrics Journal, 21(1), C1–C68. arxiv.org/abs/1608.00060

기존 연구의 재검토

  1. Baker, A. C., Larcker, D. F., & Wang, C. C. Y. (2022). How Much Should We Trust Staggered Difference-in-Differences Estimates? Journal of Financial Economics, 144(2), 370–395.

인용 원칙 본문 수치는 원문 기준으로 표기했다. 워킹페이퍼 공개와 출간 연도가 다른 문헌은 본문에서 병기했고, 1차 자료 확인이 어려운 서술은 "~로 알려져 있다", 후대의 해석은 "~로 부른다/읽는다"로 구분해 적었다. arXiv 링크는 식별자가 확인된 문헌에만 달았다.

한국외국어대학교 Global Business & Technology · 대학원 딥러닝 세미나 · 인과추론 모듈 3장.
이 자료는 단일 HTML 파일로 배포되며, 수식은 MathJax, 실습은 순수 JavaScript로 구현되어 오프라인에서도 동작한다(수식 렌더링만 최초 1회 네트워크 필요). 색상 규약: 붉은색 = 처치, 청록색 = 대조, 회색 점선 = 반사실.