使用R中的plm包使用群集稳健标准错误进行IV估计

时间:2016-11-01 20:09:59

标签: r plm

我使用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估计计算集群稳健的标准误差,但它们都不允许随机效应/截距。

1 个答案:

答案 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),并按照巡回问题进行操作。