이 글은 사전지식 기반 (교재 미확인 — agent 사전학습 기반). 핵심 인용 — Roth (2022) Pre-test with Caution, Wooldridge (2010) Econometric Analysis of Cross Section and Panel Data.
이 글은 Phase J 시리즈의 14 번째 글이자 J-DID 시리즈 의 두 번째. DiD 의 모든 식별의 기초 인 Parallel Trends Assumption (PTA) 와 TWFE regression 을 깊이 다룬다.
1 진입 직관 — “처치 안 받았다면 어떻게 변했을까”
이전 글에서 DiD 의 공식 을 봤다. 그러나 DiD 가 실제로 인과 효과를 추정 하려면 결정적 가정 필요:
Parallel Trends Assumption: 처치 group 이 처치를 받지 않았다면, 대조 group 과 같은 시간 trend 를 따랐을 것.
즉 counterfactual trend 가 대조 group 의 관찰된 trend 와 parallel.
비유 — 두 형제의 키 성장: 형 (처치) 에게 성장 호르몬 줌. 동생 (대조) 은 자연 성장. 1 년 후 형 +15cm, 동생 +10cm. 호르몬 효과 = +5cm.
PTA: 만약 형이 호르몬 안 받았다면, 동생처럼 +10cm 성장했을 것. 즉 baseline 성장 속도 가 두 형제 같음.
위반: 형이 원래 더 빨리 성장하는 체질 (다른 trend) 면 PTA 위반. +15cm 의 일부는 호르몬 + 빠른 자연 성장 — 효과 과대.
2 Parallel Trends Assumption — 정확한 정의
처치 시점 0 (pre) → 1 (post). 처치 group \(T\), 대조 group \(C\). 잠재적 결과 \(Y^a_{it}\):
\[ \mathbb{E}[Y^{a=0}_{T,1} - Y^{a=0}_{T,0}] = \mathbb{E}[Y^{a=0}_{C,1} - Y^{a=0}_{C,0}] \]
즉 처치 안 받았다면 처치 group 의 시간 변화 = 대조 group 의 시간 변화.
2.1 함의
Counterfactual \(Y^{a=0}_{T,1}\) (처치 group 이 처치 안 받았다면 후기 결과) 를 직접 관찰 못 함. 그러나 PTA 가정 하에 대조 group 의 변화 로 추정 가능.
2.2 Identification
PTA + observed data → ATT 식별 가능:
\[ \text{ATT} = \mathbb{E}[Y^{a=1}_{T,1} - Y^{a=0}_{T,1}] = (\bar{Y}_{T,1} - \bar{Y}_{T,0}) - (\bar{Y}_{C,1} - \bar{Y}_{C,0}) \]
수식 직관: PTA 는 시간 trend 가 처치와 독립 임을 가정. 처치 외 모든 시간 변화 (계절, 경제, 정책 등) 가 두 group 에 동일 영향.
3 PTA 의 위반 사례
3.1 위반 1: Group-Specific Time Trend
두 group 이 원래 다른 속도 로 변화. 예: 뉴저지 fast food 가 원래 펜실베이니아보다 빠르게 성장.
결과: DiD 가 처치 효과 + group 간 trend 차이 를 합쳐 추정. Biased.
3.2 위반 2: Concurrent Shocks
처치 시점에 처치 group 만 다른 shock 받음. 예: 뉴저지의 최저 임금 인상 + 동시에 뉴저지 경기 침체.
결과: DiD 가 처치 효과 + 침체 효과 합산. Biased.
3.3 위반 3: Anticipation
처치 group 이 처치 시행 전 이미 행동 변화. 예: 최저 임금 인상 발표 후 시행 전 에 매장이 인력 조정.
결과: Pre-period 의 outcome 이 이미 영향 받음. Biased.
4 Pre-Trend Test — 검증 시도
4.1 방법
처치 전 데이터에서 두 group 의 trend 비교. 만약 parallel 이면 PTA 가정 어느 정도 정당화.
4.2 Event-Study 형태
처치 시점 t = 0 기준, t = -3, -2, -1, 0, 1, 2, … 의 group 차이 plot. t < 0 에서 parallel 인지 확인.
4.3 사례 — Card-Krueger
1992 년 4 월 최저 임금 인상. 1992 이전 의 두 주 fast food 고용 trend 비교. Card-Krueger 가 pre-trend parallel 임을 보고. Robustness 강화.
5 Pre-Trend Test 의 한계 — Roth (2022)
5.1 비판
Roth (2022) Pre-test with Caution: pre-trend test 의 세 가지 위협:
5.1.1 1: Power 부족
Pre-trend 가 실제 다름 이라도 통계적으로 유의 안 보일 수 있음. True PTA 위반 검출 못 함.
5.1.2 2: Pre-trend 가 Parallel 이라도 Post 도 그럴 보장 없음
처치 시점에 trend 변화 가능. Pre 의 parallel ≠ post 의 parallel.
5.1.3 3: Pre-test 후 conditional 추정의 분포 변화
Pre-test 통과 시험만 공개 publication — publication bias. 추정량의 신뢰구간 부정확.
5.2 권장
Roth 등의 권장:
- Pre-trend test 를 robustness check 로만 (검증 도구 아님)
- Sensitivity analysis — PTA 위반 가정 하에 결과 변화 분석
- Honest visualization — pre-trend plot 명시적
6 Two-Way Fixed Effects (TWFE) Regression
6.1 표준 회귀 형태
\[ Y_{it} = \alpha_i + \gamma_t + \beta D_{it} + \mathbf{X}_{it}^\top \delta + \varepsilon_{it} \]
- \(\alpha_i\): unit fixed effect (각 unit 의 시간 무관 차이)
- \(\gamma_t\): time fixed effect (모든 unit 에 같은 시간 효과)
- \(D_{it}\): 처치 indicator
- \(\mathbf{X}_{it}\): 추가 covariate (선택)
- \(\beta\): 처치 효과
6.2 등가성
단순 2x2 DiD 의 경우 TWFE 의 \(\beta\) = DiD estimator. 두 group · 두 시점에서 동일.
6.3 일반화
여러 unit, 여러 시점, staggered adoption 도 가능. 그러나 최근 연구는 staggered 에서 TWFE 의 함정 지적 (다음 글).
6.4 Cluster-Robust Standard Error
Panel 데이터 — 같은 unit 의 다른 시점 observations 가 상관. 표준 OLS SE 는 underestimate.
해결: Cluster-robust SE (cluster by unit). 정확한 신뢰구간.
사례: Bertrand, Duflo, Mullainathan (2004) How Much Should We Trust Differences-in-Differences Estimates? — cluster SE 의 중요성 강조.
7 TWFE 의 가정
7.1 1: PTA (가장 중요)
No unit-time interaction in errors. \(\varepsilon_{it}\) 가 unit + time fixed effects 후 처치와 독립.
7.2 2: No Anticipation
처치 시행 전 에 영향 없음. 위반 시 pre-period biased.
7.3 3: SUTVA
한 unit 의 처치가 다른 unit 에 영향 없음. Spillover 가 있으면 위반 (Phase J-SWITCH).
7.4 4: Common Support
두 group 모두 처치 전 / 후 데이터 존재. 한쪽이 missing 이면 식별 불가능.
8 Event-Study Regression
8.1 형태
동적 처치 효과 — 처치 시점 기준 상대 시점 의 효과:
\[ Y_{it} = \alpha_i + \gamma_t + \sum_{k \neq -1} \beta_k \mathbb{1}[K_{it} = k] + \varepsilon_{it} \]
\(K_{it} = t - t_i^*\) (unit i 의 처치 시점 \(t_i^*\) 기준 상대 시점). \(\beta_k\) 는 상대 시점 k 의 효과.
8.2 시각화
\(\beta_k\) vs \(k\) plot.
- k < 0 (pre): 0 근처여야 PTA 정당
- k = 0 (처치): 즉각 효과
- k > 0 (post): 동적 효과 (점진적 증가? 감소?)
8.3 응용
Card-Krueger, Goodman-Bacon 등 다수 사례. Visual 검증 + 통계 추론.
9 시뮬레이션 — DiD with TWFE
import numpy as np
import pandas as pd
np.random.seed(42)
# Panel data: 100 units (50 처치, 50 대조), 5 시점 (t=0,1,2,3,4)
n_units = 100
n_T = n_units // 2
T_periods = 5
# Unit fixed effects
alpha = np.random.normal(50, 10, n_units)
# Time fixed effects
gamma = np.array([0, 1, 2, 3, 4]) # linear time trend
# Treatment 시점 = t=2 (시점 2, 3, 4 에서 처치)
T_unit = np.array([1] * n_T + [0] * (n_units - n_T)) # 처치 group
D = np.zeros((n_units, T_periods))
for t in range(T_periods):
if t >= 2: # 시점 2 이후
D[:n_T, t] = 1 # 처치 group 만 처치 받음
# True ATT = 5
true_ATT = 5
# Outcome
Y = np.zeros((n_units, T_periods))
for i in range(n_units):
for t in range(T_periods):
Y[i, t] = alpha[i] + gamma[t] + true_ATT * D[i, t] + np.random.normal(0, 2)
# DataFrame
data = []
for i in range(n_units):
for t in range(T_periods):
data.append({'unit': i, 'time': t, 'D': int(D[i, t]),
'T_unit': int(T_unit[i]), 'Y': Y[i, t]})
df = pd.DataFrame(data)
# Naive 2x2 DiD (시점 1 vs 시점 2)
Y_T_pre = df[(df['T_unit']==1) & (df['time']==1)]['Y'].mean()
Y_T_post = df[(df['T_unit']==1) & (df['time']==2)]['Y'].mean()
Y_C_pre = df[(df['T_unit']==0) & (df['time']==1)]['Y'].mean()
Y_C_post = df[(df['T_unit']==0) & (df['time']==2)]['Y'].mean()
did_simple = (Y_T_post - Y_T_pre) - (Y_C_post - Y_C_pre)
print(f"[2x2 DiD (시점 1→2)]")
print(f" 진짜 ATT: {true_ATT}")
print(f" 추정: {did_simple:.3f}\n")
# TWFE Regression (with statsmodels)
import statsmodels.formula.api as smf
model = smf.ols(
'Y ~ D + C(unit) + C(time)',
data=df
).fit(cov_type='cluster', cov_kwds={'groups': df['unit']})
beta_D = model.params['D']
se_D = model.bse['D']
ci_low = beta_D - 1.96 * se_D
ci_high = beta_D + 1.96 * se_D
print(f"[TWFE Regression]")
print(f" β (D 계수) = {beta_D:.3f}")
print(f" Cluster-robust SE = {se_D:.3f}")
print(f" 95% CI = ({ci_low:.3f}, {ci_high:.3f})")
print(f" 진짜 ATT 5 가 CI 안에: {ci_low <= 5 <= ci_high}")
# Pre-trend Test
print(f"\n[Pre-trend Test — 시점 0, 1 의 group 차이]")
Y_T_t0 = df[(df['T_unit']==1) & (df['time']==0)]['Y'].mean()
Y_T_t1 = df[(df['T_unit']==1) & (df['time']==1)]['Y'].mean()
Y_C_t0 = df[(df['T_unit']==0) & (df['time']==0)]['Y'].mean()
Y_C_t1 = df[(df['T_unit']==0) & (df['time']==1)]['Y'].mean()
pre_trend_diff = (Y_T_t1 - Y_T_t0) - (Y_C_t1 - Y_C_t0)
print(f" 처치 group 변화 (t=0→1): {Y_T_t1 - Y_T_t0:.3f}")
print(f" 대조 group 변화 (t=0→1): {Y_C_t1 - Y_C_t0:.3f}")
print(f" Pre-trend DiD: {pre_trend_diff:.3f}")
print(f" → 0 에 가까우면 PTA 합리적 (처치 시점 전 trend parallel)")결과 해석:
- 2x2 DiD: 진짜 ATT 5 ≈ 추정 5.x.
- TWFE: cluster-robust SE 와 함께 valid CI.
- Pre-trend test: 0 근처면 PTA 가정 정당화.
10 결론
PTA 는 DiD 의 생명선. 시간 trend 가 두 group 동일 가정. Verifiability 한계 — pre-trend test 는 robustness check 로만. TWFE regression 은 cluster-robust SE 필수.
핵심 메시지:
- PTA: Counterfactual trend 가정
- 위반 사례: Group trend, concurrent shock, anticipation
- Pre-trend test: 도구이나 충분 조건 아님 (Roth 2022)
- TWFE Regression: \(Y_{it} = \alpha_i + \gamma_t + \beta D_{it}\)
- Cluster-robust SE: Panel data 에서 필수
- Event-study: 동적 효과 시각화
- Sensitivity analysis: PTA 위반에 대한 robustness
다음 글에서 Staggered Adoption — 최근 연구의 도전.
11 관련 주제
선행 지식
Phase J 후속 글
- Staggered Adoption (placeholder)
- Synthetic Control (placeholder)
12 참고문헌
- Card, D. & Krueger, A. B. (1994). Minimum wages and employment. American Economic Review 84, 772-793.
- Roth, J. (2022). Pretest with caution: Event-study estimates after testing for parallel trends. American Economic Review: Insights 4, 305-322.
- Bertrand, M., Duflo, E., Mullainathan, S. (2004). How much should we trust differences-in-differences estimates? Quarterly Journal of Economics 119, 249-275.
- Wooldridge, J. M. (2010). Econometric Analysis of Cross Section and Panel Data (2nd ed.). MIT Press.
- Roth, J., Sant’Anna, P. H. C., Bilinski, A., Poe, J. (2023). What’s trending in difference-in-differences? J. Econometrics.
- Borusyak, K., Jaravel, X., Spiess, J. (2024). Revisiting event study designs: Robust and efficient estimation. Review of Economic Studies.