Page QiView

计量经济学:DID 与事件研究法(Python)

计量经济学:DID 与事件研究法(Python)

1. DID 在识别什么

双重差分关注的是“处理组相对对照组,在政策后多变化了多少”:

$$ Y_{it}=\alpha_i+\gamma_t+\beta D_{it}+\varepsilon_{it} $$

其中 $\beta$ 是核心参数,解释依赖平行趋势假设。

2. 平行趋势不能只靠口头陈述

建议至少做三步:

  • 政策前趋势图(处理组 vs 对照组);
  • 事件研究中的政策前 lead 系数检验;
  • 更换样本窗口与控制组做稳健性对照。

3. Python 示例(双向固定效应)

from linearmodels.panel import PanelOLS
import statsmodels.api as sm

panel = df.set_index(["unit", "time"]).sort_index()
panel["const"] = 1

mod = PanelOLS.from_formula(
    "y ~ 1 + did + x1 + x2 + EntityEffects + TimeEffects",
    data=panel,
)
res = mod.fit(cov_type="clustered", cluster_entity=True)
print(res)

4. 事件研究法(动态效应)

构造相对政策时点 $k=t-T_i$,回归:

$$ Y_{it}=\alpha_i+\gamma_t+\sum_{k \neq -1}\beta_k 1{event_time=k}+\varepsilon_{it} $$

  • 省略 $k=-1$ 作为基期;
  • 政策前 $\beta_k$ 应接近 0;
  • 政策后 $\beta_k$ 展示动态影响路径。

5. 实务陷阱

  • 处理时点错位导致“伪动态效应”;
  • 标准误未聚类导致显著性夸大;
  • 处理组与对照组构成差异过大。

结论应建立在“识别假设 + 诊断图 + 稳健性”的组合证据上。