如何解决面板数据中的时间段聚类
我拥有 1985 年至 2010 年每半年一次的 33 个国家/地区的面板数据。我想估计年龄结构对 STATA 中财政乘数的影响。为此,我运行平滑过渡局部投影来构建脉冲响应函数。首先,我使用以下代码为对数转换的 GDP、政府支出和政府支出预测误差生成 3 个平滑过渡变量:
foreach x in lrgdp lrg fe_ptdd {
gen z_`x' = yng*`x'
gen resz_`x' = (1-yng)*`x'
}
然后,我使用代码回归:
forv h=0/10 {
xtreg lrgdp`h' l(1).z_lrgdp l(1).resz_lrgdp l(1).z_lrg l(1).resz_lrg z_fe_ptdd resz_fe_ptdd,fe vce(cluster t_id)
}
由于许多财政冲击可能在某种程度上是全球性的,因此标准误差可能会在各个国家/地区之间相互关联。因此,我想按时间段进行聚类。上面的代码在没有聚类的情况下工作,但是当我在时间 id t_id 上聚类时,我收到错误消息:面板未嵌套在集群中。如果我尝试按实际时间变量(1985.5、1986、1986.5 等)进行聚类,我会得到同样的错误。
据我所知,相同的 ID(在本例中为国家/地区)可能不会出现在多个集群(时间段)中 - 我猜他们会出现这种情况,因为我拥有所有时间段内每个国家/地区的数据。但我不能简单地删除时间维度。如果我尝试在国家/地区进行集群,则代码可以正常工作。如何解决此问题并按时间段进行聚类?
解决方法
一般来说,通过面板回归,您会在期望错误相关的级别上进行聚类。典型的实证应用是在 RCT 中的治疗分配水平上进行聚类。在您的情况下,如果您假设全球冲击起作用,那么我会在回归命令中包含 i.t_id
作为协变量。
也就是说,有一个 xtreg
子选项 nonest
可以覆盖此默认行为。您的代码将如下所示:
forv h=0/10 {
xtreg lrgdp`h' l(1).z_lrgdp l(1).resz_lrgdp l(1).z_lrg ///
l(1).resz_lrg z_fe_ptdd resz_fe_ptdd,///
fe nonest vce(cluster t_id)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。