使用 R 中的 plm 包进行聚类稳健标准误差的 IV 估计
IV Estimation with Cluster Robust Standard Errors using the plm package in R
我正在使用面板数据的 plm 包来进行工具变量估计。但是,似乎不支持使用 vcovHC() 函数计算聚类稳健标准误差。
更具体地说,当我使用 vcovHC() 函数时,会显示以下错误消息:
Error in vcovG.plm(x, type = type, cluster = cluster, l = 0, inner = >inner, :
Method not available for IV
示例:
data("Wages", package = "plm")
IV <- plm(lwage ~ south + exp | wks + south,
data = Wages, model = "pooling", index = 595)
vcvIV <- vcovHC(IV)
据此 thread,有人在两年前进行了修复。问题有进展吗?我知道 "lfe" 和 "ivpack" 包允许为 IV 估计计算集群稳健标准误差,但其中 none 允许随机 effects/intercepts.
实际上并没有实现。但是,您可以使用直接应用于 plm
class 的对象的 Schrimpf's clustered errors function。
使用您的示例:
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 可以帮助你更进一步。
您可以通过 cl.plm
在 Stata 中执行此操作获得相同的结果:
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
class 对象。
为了完整起见:按照@Helix123 的建议,您可以使用 plm
包的开发版本 (1.6-1) 并按照您在旅游问题中所做的那样继续。
我正在使用面板数据的 plm 包来进行工具变量估计。但是,似乎不支持使用 vcovHC() 函数计算聚类稳健标准误差。 更具体地说,当我使用 vcovHC() 函数时,会显示以下错误消息:
Error in vcovG.plm(x, type = type, cluster = cluster, l = 0, inner = >inner, : Method not available for IV
示例:
data("Wages", package = "plm")
IV <- plm(lwage ~ south + exp | wks + south,
data = Wages, model = "pooling", index = 595)
vcvIV <- vcovHC(IV)
据此 thread,有人在两年前进行了修复。问题有进展吗?我知道 "lfe" 和 "ivpack" 包允许为 IV 估计计算集群稳健标准误差,但其中 none 允许随机 effects/intercepts.
实际上并没有实现。但是,您可以使用直接应用于 plm
class 的对象的 Schrimpf's clustered errors function。
使用您的示例:
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 可以帮助你更进一步。
您可以通过 cl.plm
在 Stata 中执行此操作获得相同的结果:
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
class 对象。
为了完整起见:按照@Helix123 的建议,您可以使用 plm
包的开发版本 (1.6-1) 并按照您在旅游问题中所做的那样继续。