外观
DID 事件研究平行趋势教程
讲清楚政策时点来源、事件期区间、固定效应维度和聚类变量在 STATAU 中的填写方式。
常用 Stata 命令
reghdfe y i.event_time##i.treat controls, absorb(entity year) cluster(entity) 在 STATAU 中打开此功能
事件研究平行趋势DIDreghdfe event study
这个页面解决什么问题
事件研究页不是为了立刻证明“政策有效”,而是先回答两个更基础的问题:政策实施前,处理组和对照组的趋势像不像;政策实施后,效果是马上出现、逐步累积,还是很快消失。只要这两个问题看清楚,DID 的解释才会更稳。
一图看懂
先看处理前各期是否围绕零,再看处理后系数是持续上升、短期跳升还是没有明显变化。顺序不要反。
方法原理
事件研究会把样本按“距离政策实施还有多少期、已经过去多少期”排开,然后分别估计每一期的系数。最关键的不是某一个点,而是整条系数路径:处理前是否围绕零波动,处理后是否出现有逻辑的动态变化。
核心公式
事件研究的常见写法
这里最重要的是
适用数据与前提
你需要先想清楚三件事:谁是处理组、时间是按年还是按季度记、政策时点从哪里来。如果数据里已经有 policy_year 这类字段,优先直接使用;没有时再考虑固定年份或自动识别。
STATAU 页面中每个位置应该放什么变量
| 网站位置 | 应放入的变量 | 说明 |
|---|---|---|
| 因变量 (Y) | 政策影响的结果变量 | 例如产出、就业、创新、绩效。 |
| 处理组变量 (treat) | 处理组识别变量 | 通常是 0/1,标记样本是否属于处理组。 |
| 时间 ID (Time) | 年份 / 季度 / 月份 | 用于构造事件期。 |
| 政策时点来源 | 固定年份 / policy_year / DID 信号自动识别 | 决定事件期如何生成。 |
| 固定效应变量 (多选) | 吸收维度 | 例如企业、年份、地区、行业。 |
| 聚类变量 | 聚类标准误维度 | 通常使用个体变量或地区变量。 |
Stata 等效代码
reghdfe [被解释变量] i.[事件期]##i.[处理组] [控制变量], absorb([固定效应]) cluster([聚类变量])| Stata 代码位置 | STATAU 网站对应位置 | 应放入什么 |
|---|---|---|
i.[事件期]##i.[处理组] | 政策时点来源 + 处理组变量 | 由处理组和事件期共同生成动态 DID 系数。 |
absorb([固定效应]) | 固定效应变量 (多选) | 吸收个体、时间或其他研究设计要求的维度。 |
cluster([聚类变量]) | 聚类变量 | 仅在聚类标准误时填写。 |
可删除代码段提示
- 如果不做聚类标准误,可以去掉整个 `cluster([聚类变量])`。
- 如果所有处理组共享同一政策年份,可用固定年份,不必单独提供 `policy_year`。
在 STATAU 中操作步骤
- 先填写因变量、处理组变量和时间变量。
- 选择政策时点来源,再设定最小事件期、最大事件期和参考期。
- 勾选要吸收的固定效应维度,并选择标准误类型。
- 运行后重点查看处理前各期系数是否整体接近零。
结果怎么看
- 处理前 lead 系数若系统性偏离零,说明平行趋势可能不足。
- 处理后 lag 系数展示的是动态效应路径,要结合政策逻辑和时间窗口解释。
- 事件期区间设太宽但样本覆盖不足,尾部系数通常会很不稳定。
论文表述示例
- 可以写成:“事件研究结果显示,政策实施前各期系数未表现出系统性显著偏离,平行趋势假设得到一定支持。”
常见使用误区
- 把
did或post误填到处理组位置,会直接干扰事件期识别。 - 没有
policy_year时若自动识别 DID 信号,务必同时提供个体 ID。