r - 在 plm 中,预差分变量上的模型 =“内”与模型 =“fd”之间的意外差异?
问题描述
我正在使用 plm 包在具有多个处理窗口的面板数据上拟合 diff-in-diff 模型。
在 plm 包中,可以设置选项: - model = "within" vs model = "fd"(第一个区别)。
为什么以下不产生等效系数估计: - 当我的变量已经不同时,模型 =“内部”$Y_\textit{diff} = (Y_{t_i} - Y_{t_{i-1}})$
的回归, -fd
当我的变量未转换时,模型 = “内”的回归$Y_{t_i}$
,
我不太明白为什么估计值不一样:
- 为什么会发生这种情况?
- “模型”参数的正确用法是什么,至关重要的是:
- 何时应该
fd
使用 *model = 与 *model =within
(尤其是在处理$Y_\textit{diff}$
LHS 上的“更改变量”时) - 在您看来,这两者中的哪一个最适合这里,您将如何决定?
- 何时应该
- 最后,为什么在使用model =“fd”时不再允许“twoway”固定效果
一些背景
如果可能相关,这里是当前面板的高级描述:
- 我目前在县/区一级使用跨越 27 年的面板数据
- 县在整个窗口中分组(非随机分配,例如城市/农村)
- 这是一个重复的措施设计。每隔几年,通过随机分配在组级别进行治疗——特定组中的所有实体要么接受治疗-X,要么接受治疗-Y。
- 虽然实体不是随机分配到组中的,但治疗是随机分配的。
- 在整个时间窗的过程中,两组中的每一个都经历了 2 次 X 治疗和 2 次 Y 治疗,产生了 4 次前后测量。
代码和示例输出
代码和输出包括在下面。如您所见,使用“一阶差分”指定的模型的 diff-in-diff 项的估计与使用“within”指定的模型的 diff-in-diff 项的估计完全不同——即使“内部”模型在对 Y 变量进行差分后运行。而且,无论效果是在“个人层面”还是“双向”指定
为了便于进行准确的统计测试,我们依靠lmtest和Sandwich包来生成标准误差,这些标准误差对于使用辅助函数(代码在末尾显示)在县级进行聚类具有鲁棒性。
回归 #1 - 一阶差分和个体固定效应:
*回归 Y模型 = "fd" | 效果:个人
注意:一阶差分模型不允许使用 effect = "two-way"
PLM__Y__model.FD__effect.individual <-
plm(Y ~ Pre.Post.Treatment * Treatment.or.Control
, data=Panel, index=c("GEOID", "Year")
, model="fd", effect = "individual")
get.coef.test.with.clustered.SEs(PLM__Y__model.FD__effect.individual)
回归 #2 - 模型内和对 Y.diff 的双向固定效应:
*回归 Y.diff 与model = "within" | 效果:双向*
PLM__diff.Y__model.within__effect.individual <-
plm(diff.Y ~ Pre.Post.Treatment * Treatment.or.Control
, data=Panel, index=c("GEOID", "Year")
, model="within", effect = "twoways")
get.coef.test.with.clustered.SEs(PLM__diff.Y__model.within__effect.individual)
回归 #3 - 模型内部和对 Y.diff 的个体固定效应: *回归模型 = "within" |对 Y.diff 进行回归 效果:个人*
PLM__diff.Y__model.within__effect.individual <-
plm(diff.Y ~ Pre.Post.Treatment * Treatment.or.Control
, data=Panel, index=c("GEOID", "Year")
, model="within", effect = "individual")
get.coef.test.with.clustered.SEs(PLM__diff.Y__model.within__effect.individual)
我期望对差异变量进行回归$Y_\textit{diff} = (Y_{t_i} - Y_{t_{i-1}})$ using model="within"
以产生与面板回归相同的估计值或标准误差$Y_{t_i}$ using model ="fd"
解决方案
推荐阅读
- c++ - 如何避免将数据缓冲区额外复制到字符串?
- objective-c - 在解除分配实例期间,ARC 不会出现奇怪的行为
- mysql - 返回 Min() 和另一个字段?
- cookies - 插件可以读取您的 cookie 吗?
- c# - 如何等待一个 GameObject 实例从另一个 GameObject 实例的 Start with Unity 完成自己的 Start?
- c - 给定C中的字符串链表,递归查找n个单词排列?
- html - 如何提前剪掉一页
- wpf - Datagrid中的WPF按钮缩小或消失
- java - 如何使 Cucumber 功能在 Android 项目中作为本地单元测试运行?
- python - else 命令未被读取