作业 1:用 Monte Carlo 模拟理解 PSM-DID
机器学习与因果推断
作业目标
本次作业要求你使用 Monte Carlo 模拟研究 PSM-DID 方法的识别逻辑、优势、局限和适用场景。你需要自行构造数据生成过程,比较 PSM-DID、单独 PSM 和单独 DID 的估计表现,并结合模拟结果进行严格的理论解释。最后,你需要选择一篇使用 PSM-DID 的中文或英文经济学期刊论文,评价其方法适用性与结论可信度。
本作业对应课程前六讲内容:潜在结果框架、混淆变量、DAG、匹配、工具变量、面板数据与双重差分。
背景一:Monte Carlo 模拟是什么
Monte Carlo 模拟是一种用重复随机抽样来研究统计方法性质的工具。它的核心思想是:如果我们知道真实的数据生成过程,就可以在许多次重复实验中观察不同估计方法的表现。
在因果推断中,真实世界通常看不到反事实结果,因此无法直接知道估计量是否有偏。但在模拟中,你可以自行设定:
- 真实处理效应 \(\tau\)
- 个体特征 \(X_i\)
- 未观测异质性 \(\alpha_i\)
- 时间冲击 \(\lambda_t\)
- 处理分配机制 \(D_i\)
- 潜在结果 \(Y_i(1), Y_i(0)\)
这样,每次模拟都能比较估计值 \(\hat{\tau}\) 与真实值 \(\tau\) 的差异。
常见评价指标包括:
\[ Bias(\hat{\tau}) = E[\hat{\tau}] - \tau \]
\[ RMSE(\hat{\tau}) = \sqrt{E[(\hat{\tau} - \tau)^2]} \]
你也可以报告标准差、中位数偏误、置信区间覆盖率,或估计值分布图。请注意,Monte Carlo 不是简单地“跑很多次代码”,而是用可控的数据生成过程检验理论命题。
背景二:PSM-DID 的基本思想
PSM-DID 将倾向得分匹配和双重差分结合起来。它通常用于政策或项目在非随机分配下实施、但研究者可以观察到处理组和控制组在政策前后的结果时。
一个典型两期设定为:
- \(D_i = 1\) 表示个体或地区 \(i\) 接受处理
- \(T_i = 1\) 表示处理后时期,\(T_i = 0\) 表示处理前时期
- \(Y_{it}\) 是结果变量
- \(X_i\) 是处理前协变量
DID 估计量比较处理组和控制组在处理前后的变化:
\[ \hat{\tau}_{DID} = [\bar{Y}_{1,post} - \bar{Y}_{1,pre}] - [\bar{Y}_{0,post} - \bar{Y}_{0,pre}] \]
PSM-DID 的做法是先基于处理前协变量估计倾向得分:
\[ e(X_i) = P(D_i = 1 \mid X_i) \]
然后在共同支持区域内为处理组寻找可比的控制组,最后在匹配后的样本上进行 DID 估计。
PSM-DID 的关键假设
你在作业中需要清楚说明并检验以下假设:
处理前协变量可观测
匹配只能平衡可观测的处理前变量。不要使用处理后变量进行匹配。
共同支持或重叠条件
对处理组中的个体,必须存在倾向得分相近的控制组:
\[ 0 < P(D_i=1 \mid X_i) < 1 \]
条件平行趋势
在给定 \(X_i\) 或匹配后的可比样本中,如果没有处理,处理组和控制组的结果变化趋势应当相同:
\[ E[Y_i(0,post)-Y_i(0,pre) \mid D_i=1, X_i] = E[Y_i(0,post)-Y_i(0,pre) \mid D_i=0, X_i] \]
SUTVA 与无提前反应
个体之间不存在处理溢出,且处理前结果没有受到未来处理预期的影响。
稳定样本与可比测量
处理前后样本构成、变量定义和测量方式不应发生会污染识别的系统性变化。
任务一:自行设计数据生成过程
请设计一个面板数据或重复截面数据的模拟环境。最低要求如下:
- 至少包含一个处理前协变量 \(X_i\)
- 至少包含处理前和处理后两个时期
- 明确写出处理分配机制 \(D_i\)
- 明确写出潜在结果或观测结果生成方程
- 明确设定真实处理效应 \(\tau\)
- 至少重复模拟 500 次
- 可以使用 Stata、Python 或 R
你需要至少设计三个场景:
| 场景 | 目的 | 建议设计 |
|---|---|---|
| 场景 A | DID 表现较好的基准情形 | 处理组和控制组满足无条件平行趋势 |
| 场景 B | PSM-DID 可能优于 DID 的情形 | 趋势差异与处理前协变量 \(X_i\) 有关,匹配后条件平行趋势成立 |
| 场景 C | PSM-DID 也可能失败的情形 | 存在不可观测的时间变化混淆、共同支持不足、或使用错误匹配变量 |
你可以增加更多场景,但不能少于三个。
任务二:比较 PSM、DID 与 PSM-DID
在每个模拟场景中,请至少比较以下三类估计方法:
单独 PSM
使用处理后结果或结果变化作为被解释变量,在匹配样本上比较处理组和控制组。
单独 DID
不进行匹配,直接使用全部样本估计 DID。建议同时比较不控制协变量的基础 DID,以及控制处理前协变量的 DID 回归版本,说明两者在不同数据生成机制下的差异。
PSM-DID
先使用处理前协变量进行匹配,再在匹配样本上估计 DID。
建议报告下列结果:
- 各方法估计值的平均值
- Bias
- RMSE
- 标准差
- 估计值分布图
- 匹配前后协变量平衡情况
- 倾向得分共同支持图
请不要只报告“哪个方法更准”。你需要说明在什么数据生成机制下,为什么它更准或更差。
任务三:解释模拟结果背后的理论原因
请围绕以下问题进行理论分析:
- 当处理选择只由可观测协变量决定时,PSM 为什么可能有效?
- 当存在时间不变的未观测异质性时,DID 为什么可能有效?
- 当趋势差异依赖于 \(X_i\) 时,为什么 PSM-DID 可能优于未匹配 DID?
- 当存在时间变化的未观测混淆时,为什么 PSM-DID 仍然可能失败?
- 匹配会改变估计对象吗?你的 PSM-DID 估计更接近 ATE 还是 ATT?
- 共同支持不足时,为什么偏误和方差都可能恶化?
你的解释必须和模拟设计逐一对应。不要把理论部分写成泛泛的教材复述。
任务四:评价一篇使用 PSM-DID 的经济学论文
请在主流中文或英文学术期刊中选择一篇使用 PSM-DID 的论文。论文可以来自经济学、金融、管理、公共政策、劳动、产业组织、环境经济学等相关领域。
你的评价至少应包括:
- 研究问题和处理变量是什么?
- 作者为什么使用 PSM-DID,而不是只用 PSM 或 DID?
- 匹配变量是否都是处理前变量?
- 是否报告共同支持和平衡性检验?
- DID 的平行趋势假设是否可信?作者如何检验?
- 是否存在不可观测的时间变化混淆或政策同时发生的问题?
- 估计结果更接近 ATE 还是 ATT?
- 根据你的模拟经验,这篇论文的识别策略最可能在哪些条件下可信,在哪些条件下脆弱?
请完整列出论文引用信息。
提交内容
请将全部材料推送到 GitHub 或 Gitee 仓库,并提交你的仓库克隆地址。仓库中应至少包含:
研究报告
Markdown 格式,建议 3000-5000 字。报告应包含问题背景、模拟设计、结果展示、理论解释、文献评价和结论。可以同时导出 PDF 或 Word 作为补充,但 Markdown 文件是必交材料。
可复现代码
Stata do 文件、R 脚本、R Markdown、Python 脚本或 Jupyter Notebook 均可。代码必须能够从头生成模拟数据、运行估计并输出主要图表。
结果图表
如果图表已经包含在报告中,可以不单独提交;否则请放入
figures/文件夹。论文材料
提交所评价论文的题名、作者、期刊、年份、DOI 或稳定链接。
AI 工具使用记录
如果使用人工智能工具辅助编程、写作、调试或文献梳理,请保留全流程记录。记录应包括你的关键 prompt、工具或 agent 的主要输出、你如何判断和修改这些输出,以及最终哪些内容被采纳。要求根据你的记录,读者可以基本复现当时的对话过程或 agent 操作结果。
评分标准
| 项目 | 权重 | 评分要点 |
|---|---|---|
| Monte Carlo 设计 | 25% | 数据生成过程清楚,真实效应明确,场景设计能对应方法假设 |
| 方法实现 | 20% | PSM、DID、PSM-DID 实现正确,代码可复现,结果指标完整 |
| 理论解释 | 25% | 能严格解释模拟结果背后的识别逻辑、偏误来源和估计对象变化 |
| 文献评价 | 20% | 能结合 PSM-DID 假设评价论文适用性和可信度 |
| 写作与呈现 | 10% | 结构清晰,图表规范,引用完整,语言准确 |
技术提示
Stata 可考虑使用 teffects psmatch、didregress、xtdidregress、reghdfe、psmatch2 或 kmatch。R 可考虑使用 MatchIt、fixest、tidyverse。Python 可考虑使用 pandas、numpy、statsmodels、scikit-learn。
你可以自行实现最近邻匹配,也可以使用已有包。无论使用哪种方式,都必须说明匹配方法、卡尺或邻居数、是否放回匹配,以及如何处理共同支持。
学术诚信
可以与同学讨论思路,但每位同学必须独立完成模拟设计、代码实现和报告写作。使用 AI 工具辅助编程或写作时,必须在报告末尾说明使用方式,并在仓库中提交完整 AI 使用记录。你需要对所有代码、结果解释和论文评价结论负责。
严禁复制他人代码、报告或论文评价。引用论文、教材、网页和代码片段时必须标注来源。
建议阅读
- Rosenbaum, P. R., & Rubin, D. B. (1983). The central role of the propensity score in observational studies for causal effects.
- Heckman, J. J., Ichimura, H., & Todd, P. E. (1997). Matching as an econometric evaluation estimator.
- Smith, J. A., & Todd, P. E. (2005). Does matching overcome LaLonde’s critique of nonexperimental estimators?
- Angrist, J. D., & Pischke, J. S. (2009). Mostly Harmless Econometrics.
- Cunningham, S. (2021). Causal Inference: The Mixtape.