使用R中的plm包进行带有聚类稳健标准误的IV估计

5
我正在使用plm软件包进行面板数据的工具变量估计。然而,使用vcovHC()函数计算簇偏差标准误似乎不被支持。 更具体地说,当我使用vcovHC()函数时,会显示以下错误消息:
“vcovG.plm(x,type = type,cluster = cluster,l = 0,inner = inner,:对于IV不可用的方法。”
示例:
data("Wages", package = "plm")
IV <- plm(lwage ~ south + exp | wks + south,
      data = Wages, model = "pooling", index = 595)

vcvIV <- vcovHC(IV)

根据这个帖子,两年前有人对此进行了修复。这个问题有没有任何进展?我知道“lfe”和“ivpack”包可以计算IV估计的聚类稳健标准误,但它们都不允许随机效应/截距。


很遗憾,您必须等待直到它被实现...您可以在此处跟踪plm的开发版本:https://r-forge.r-project.org/R/?group_id=406 - Helix123
谢谢您的回复。您是否计划近期实施它? - André
plm的官方CRAN版本(1.6-4)现在已经将此功能整合进去了。 - Helix123
1个回答

2
实际上这并未被实现。不过,您可以使用Schrimpf的集群错误函数,该函数直接应用于plm类的对象。 以您的示例为例:
library (plm)

data("Wages", package = "plm")

IV <- plm(lwage ~ south + exp | wks + south, data = Wages, model = "pooling", index = 595)

Wages$id <- rep(1:595, each = 7)        

cl.plm(Wages, IV, Wages$id)

在这里,我使用Wages$id作为面板第一个维度来形成聚类。您可能想将这些结果与其他软件中获得的结果进行比较。无论如何,代码很简单,允许一些技巧。 cl.plm函数基于Arai的聚类笔记,可以帮助您进一步了解。
在Stata中,您可以通过以下方式获得与cl.plm相同的结果:
ivregress 2sls lwage south (exp = wks), vce(cluster id) small

如果是在模型内:

xtset id time, generic

xtivreg2 lwage south (exp = wks), fe small cluster(id)

注意,我在Stata中使用的是小样本公式,这并不重要。更多信息请点击这里。无论如何,cl.plm可以正确处理plm类对象。

为了完整起见:根据@Helix123的建议,您可以使用plm软件包的开发版本(1.6-1),并像在您的问题中那样继续操作。


没错,@Helix123。正如您可以在这里的参考文献(http://fmwww.bc.edu/ec-p/wp545.pdf)(http://econweb.umd.edu/~sarzosa/teach/2/Disc2_Cluster_handout.pdf)或者通过谷歌上的许多关于此问题的讲座中看到的那样,IV的公式与标准公式没有区别。我想vcovHC可能无法正确处理Formula类的多部分公式。 - Rodrigo Remedio
1
太好了!我已经检查了plm开发版本1.6-1和plm的vcovHC以及cl.plm,除了在cl.plm中执行的自由度调整(通过(M/(M-1))*((N-1)/(N-K))乘以vcov)之外,两者给出了相同的结果。这个调整也可以通过vcovHC(..., type="sss")来执行。 - Helix123
可以运行了!谢谢! - André
1
plm的官方CRAN版本(1.6-4)现在已经将其纳入其中。 - Helix123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接