我使用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)
根据这个thread,有人在两年前做过修复工作。这个问题有进展吗?我知道包装&#34; lfe&#34;和&#34; ivpack&#34;允许为IV估计计算集群稳健的标准误差,但它们都不允许随机效应/截距。
答案 0 :(得分:2)
事实上它没有实施。但是,您可以使用Schrimpf's clustered errors function直接应用于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的clustering notes,可以为您提供进一步的帮助。
您可以从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中使用了小样本配方,这并不是什么大问题。有关此here的更多信息。无论如何,cl.plm
正确处理plm
类对象。
为了完整起见:正如@ Helix123所建议的那样,您可以使用plm
包的开发版本(1.6-1),并按照巡回问题进行操作。