双重差分(DID)实证审查Skill。做DID分析前必须检查平行趋势假设、画图可视化、报告违背情况。触发词:DID审查/双重差分检查/平行趋势/DiD reviewer/difference-in-differences
Install
npx skillscat add brycewang-stanford/auto-empirical-research-skills/did-reviewer Install via the SkillsCat registry.
SKILL.md
did-reviewer — 双重差分 (DID) 实证审查Skill
本 Skill 是 DID(双重差分)实证分析的强制检查清单,在执行 DID 分析前和分析后都必须按本 Skill 检查:平行趋势假设、可视化、违背报告、稳健性。不符合本 Skill 要求的 DID 分析不得发表。
适用场景
- 做 DID 分析前设计检验方案
- 审稿人审查 DID 论文时使用
- 研究者自查 DID 实证结果时使用
- 评估已发表 DID 论文的质量时使用
核心理念
DID 是识别因果的"近似实验",但前提是平行趋势假设成立。若该假设不成立,则 DID 估计量是有偏的,无论结果多么"显著"。
常见错误:
- ❌ 只报告处理组和对照组的系数,不检验平行趋势
- ❌ 平行趋势检验图不加置信区间
- ❌ 不报告政策提前发生的违背情况(anticipation effects)
- ❌ 把 DID 当万能钥匙,忽视识别假设
强制检查清单(DID 七步审查)
✅ 第一步:确认研究设计类型
| 类型 | 命令 | 说明 |
|---|---|---|
| 标准 DID(2×2) | didYw 或手动回归 |
处理组vs对照组,一次政策 |
| 多时点 DID(Staggered DID) | did2/csdid |
不同单位政策时间不同 |
| 交错 DID(Event Study) | eventstudy |
事件前后动态效应 |
| 连续 DID(Continuous DID) | 断点回归变体 | 政策强度连续变化 |
✅ 第二步:平行趋势检验(Pre-trend Test)
必须执行:
- 计算处理组和对照组在政策前期(pre-period)的结果变量均值
- 检验政策前期两组的趋势是否平行
- 使用 事件研究图(Event Study Plot) 可视化
事件研究图规范:
X轴:相对时间(政策前第k期到政策后第k期)
Y轴:处理效应系数
必须包含:置信区间(95%CI)、政策前期系数连线、政策后期系数判断标准:
- 政策前期(k<0)系数不显著异于0 → 平行趋势成立 ✅
- 政策前期系数显著异于0 → 平行趋势违背 ❌
✅ 第三步:报告违背情况(Violation Report)
若发现以下违背情况,必须如实报告:
| 违背类型 | 描述 | 处理方式 |
|---|---|---|
| Anticipation Effects | 处理组在政策实施前就提前反应 | 将政策前期效应纳入模型 |
| Spillover Effects | 对照组受到处理组溢出效应 | 排除溢出污染样本 |
| Composition Effects | 处理组样本在政策后发生变化 | 记录并分析样本变化 |
| Parallel Trend Violation | 政策前期趋势不平行 | 改用合成控制法(SCM) |
报告格式:
## 平行趋势违背报告
**检验方法**:[描述使用的检验方法]
**违背情况**:[是/否存在违背]
- 若存在:描述违背类型、程度、可能影响
- 若不存在:说明检验结果✅ 第四步:Staggered DID 特殊检验
若使用多时点 DID / 交错处理,额外检查:
Callaway & Sant'Anna (2021) 检验:
# 使用 csdid 或 did2 包
csdid(lwage, id, time, gvar, control = "nevertreated")Borusyak et al. (2024) 检验:
# 使用 did 包
did(yname, tname, idname, gname, xformla = ~X)判断标准:
- 不同处理时间点的效应是否异质
- 是否存在"好坏"处理时间混淆
✅ 第五步:安慰剂检验(Placebo Test)
必须执行:
| 检验类型 | 做法 | 判断标准 |
|---|---|---|
| 时间安慰剂 | 假设政策提前2-3年 | 政策前期系数应不显著 |
| 随机处理组 | 随机抽取处理组 | 显著结果应<5% |
| 替换变量 | 用同期不相关变量替代因变量 | 应不显著 |
✅ 第六步:稳健性检验
至少报告以下稳健性检验:
- 排除异常值:剔除处理组中政策前后的极端值
- 不同控制组:替换对照组的定义
- 不同模型设定:增减控制变量、改变函数形式
- 样本敏感性:不同样本范围的结果一致性
✅ 第七步:异质性分析(可选但建议)
报告处理效应的异质性:
| 异质性维度 | 分组方式 |
|---|---|
| 地区 | 沿海vs内陆 |
| 企业规模 | 大vs小 |
| 行业 | 高技术vs低技术 |
| 时间 | 政策早期vs晚期 |
输出标准格式
## DID 实证审查报告
**审查对象**:论文标题/研究问题
**使用的识别策略**:标准DID / 交错DID / 连续DID
**数据来源**:[数据库名称,附provenance]
### 审查结果
| 检查项 | 状态 | 说明 |
|--------|------|------|
| 平行趋势检验 | ✅/❌ | 检验方法和结果 |
| 事件研究图 | ✅/❌ | 是否规范 |
| 违背情况报告 | ✅/❌ | 是否如实报告 |
| 交错DID特殊检验 | ✅/❌ | 使用的方法 |
| 安慰剂检验 | ✅/❌ | 结果是否合理 |
| 稳健性检验 | ✅/❌ | 报告了哪些 |
| 异质性分析 | ✅/❌ | 分析内容 |
### 致命缺陷(如有)
[列出可能导致识别策略失效的致命问题]
### 建议修改
[针对性的修改建议]调用接口
在 Claude Code 对话窗口输入:
/did-reviewer或完整 Prompt:
按DID审查Skill检查本项目的DID分析:必须包含平行趋势检验、事件研究图、违背情况报告、交错DID特殊检验、安慰剂检验、稳健性检验。输出结构化审查报告。与其他 Skill 的配合
grillme→ 选题时确定使用 DID 作为识别策略citation-fidelity→ 引用 DID 相关方法论文献时核查准确性econ-reviewer→ 完整论文审查时配合使用
重要声明
- 本 Skill 的审查标准参照**顶刊(AER, Econometrica, QJE, JPE)**要求
- 平行趋势检验是必要条件,不是可选项
- 发现违背情况不等于论文无效,但必须如实报告,审稿人会判断是否接受