---
name: brycewang-stanford/did-reviewer
source: https://app.decimal.ai/s/brycewang-stanford-did-reviewer@1/SKILL.md
source_sha256: c63ab2157fdc
---

# 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）

**必须执行**：
1. 计算处理组和对照组在政策前期（pre-period）的结果变量均值
2. 检验**政策前期**两组的趋势是否平行
3. 使用 **事件研究图（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） |

**报告格式**：

```markdown
## 平行趋势违背报告

**检验方法**：[描述使用的检验方法]
**违背情况**：[是/否存在违背]
- 若存在：描述违背类型、程度、可能影响
- 若不存在：说明检验结果
```

### ✅ 第四步：Staggered DID 特殊检验

若使用**多时点 DID / 交错处理**，额外检查：

**Callaway & Sant'Anna (2021) 检验**：
```r
# 使用 csdid 或 did2 包
csdid(lwage, id, time, gvar, control = "nevertreated")
```

**Borusyak et al. (2024) 检验**：
```r
# 使用 did 包
did(yname, tname, idname, gname, xformla = ~X)
```

**判断标准**：
- 不同处理时间点的效应是否异质
- 是否存在"好坏"处理时间混淆

### ✅ 第五步：安慰剂检验（Placebo Test）

**必须执行**：

| 检验类型 | 做法 | 判断标准 |
|----------|------|----------|
| 时间安慰剂 | 假设政策提前2-3年 | 政策前期系数应不显著 |
| 随机处理组 | 随机抽取处理组 | 显著结果应<5% |
| 替换变量 | 用同期不相关变量替代因变量 | 应不显著 |

### ✅ 第六步：稳健性检验

至少报告以下稳健性检验：

- **排除异常值**：剔除处理组中政策前后的极端值
- **不同控制组**：替换对照组的定义
- **不同模型设定**：增减控制变量、改变函数形式
- **样本敏感性**：不同样本范围的结果一致性

### ✅ 第七步：异质性分析（可选但建议）

报告处理效应的异质性：

| 异质性维度 | 分组方式 |
|------------|----------|
| 地区 | 沿海vs内陆 |
| 企业规模 | 大vs小 |
| 行业 | 高技术vs低技术 |
| 时间 | 政策早期vs晚期 |

## 输出标准格式

```markdown
## 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）**要求
- **平行趋势检验是必要条件，不是可选项**
- 发现违背情况不等于论文无效，但必须**如实报告**，审稿人会判断是否接受