병행 추세 가정과 TWFE — DiD 의 핵심

Parallel Trends Assumption 의 정확한 의미와 회귀 표현

DiD 의 가장 중요한 가정 Parallel Trends Assumption (PTA)Two-Way Fixed Effects (TWFE) regression 의 깊이. (1) PTA 의 counterfactual 표현, (2) Pre-trend test 의 메커니즘과 한계 (Roth 2022 의 비판), (3) TWFE regression 의 표준 형태와 cluster-robust SE, (4) Anticipation effects 의 위협, (5) Common support 가정, (6) 실무 권장 — event study + pre-trend visualization. 시뮬레이션 풍부.

Experimentation
Causal Inference
저자

Kwangmin Kim

공개

2026년 05월 09일

출처

이 글은 사전지식 기반 (교재 미확인 — 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 의 관찰된 trendparallel.

비유 — 두 형제의 키 성장: 형 (처치) 에게 성장 호르몬 줌. 동생 (대조) 은 자연 성장. 1 년 후 형 +15cm, 동생 +10cm. 호르몬 효과 = +5cm.

PTA: 만약 형이 호르몬 안 받았다면, 동생처럼 +10cm 성장했을 것. 즉 baseline 성장 속도 가 두 형제 같음.

위반: 형이 원래 더 빨리 성장하는 체질 (다른 trend) 면 PTA 위반. +15cm 의 일부는 호르몬 + 빠른 자연 성장 — 효과 과대.

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 통과 시험만 공개 publicationpublication bias. 추정량의 신뢰구간 부정확.

5.2 권장

Roth 등의 권장:

  1. Pre-trend test 를 robustness check 로만 (검증 도구 아님)
  2. Sensitivity analysis — PTA 위반 가정 하에 결과 변화 분석
  3. 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)")

결과 해석:

  1. 2x2 DiD: 진짜 ATT 5 ≈ 추정 5.x.
  2. TWFE: cluster-robust SE 와 함께 valid CI.
  3. Pre-trend test: 0 근처면 PTA 가정 정당화.

10 결론

PTA 는 DiD 의 생명선. 시간 trend 가 두 group 동일 가정. Verifiability 한계 — pre-trend test 는 robustness check 로만. TWFE regression 은 cluster-robust SE 필수.

핵심 메시지:

  1. PTA: Counterfactual trend 가정
  2. 위반 사례: Group trend, concurrent shock, anticipation
  3. Pre-trend test: 도구이나 충분 조건 아님 (Roth 2022)
  4. TWFE Regression: \(Y_{it} = \alpha_i + \gamma_t + \beta D_{it}\)
  5. Cluster-robust SE: Panel data 에서 필수
  6. Event-study: 동적 효과 시각화
  7. Sensitivity analysis: PTA 위반에 대한 robustness

다음 글에서 Staggered Adoption — 최근 연구의 도전.

11 관련 주제

선행 지식

Phase J 후속 글

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.

Subscribe

Enjoy this blog? Get notified of new posts by email: