我正在使用的面板回归软件是 plm
这样的包。
library("plm")
Data <- data.frame(id = c(rep("a",50), rep("b", 50)),
y = rnorm(100),
x = c(rnorm(50), rnorm(50, sd = 5)),
z = c(rnorm(50), rnorm(50, sd = 3)))
panelmodel <- plm(y ~ x + z,
data = Data,
effect = "individual",
model = "within",
index = "id")
我想调整聚类的标准误差,我可以用... lmtest
包一样。
library("lmtest")
coeftest(panelmodel,
vcov = vcovHC(panelmodel,
type = "sss"), # I need this exact type of standard errors
cluster = "id")
但我需要的是聚类调整后的协方差矩阵 就是用来计算标准误差的那个矩阵 上面用的是非调整后的协方差矩阵,就是这个。
vcovHC(panelmodel, type = "sss")
但是这个还没有调整。如何让coeftest计算出的协方差矩阵返回调整后的标准误差?我需要这个来进一步计算不同的协方差。
我需要它来进一步计算不同的协方差。multiwayvcov
不幸的是,软件包不能与 plm 对象一起使用,所以这个包被淘汰了。
见文件。?plm::vcovHC.plm
: vcovHC(panelmodel, type = "sss")
已经是您要找的东西,它与 vcovHC(panelmodel, type = "sss", cluster = "group")
.
争论 cluster
传给 coeftest()
(而不是 vcovHC()
)没有被评估,因为它是函数和函数的未知参数(至少对你的例子来说)。你可以通过比较这三个命令的结果来检查,它们都是一样的。
coeftest(panelmodel, vcov. = vcovHC(panelmodel, type = "sss"))
coeftest(panelmodel, vcov. = vcovHC(panelmodel, type = "sss"), cluster = "id")
coeftest(panelmodel, vcov. = vcovHC(panelmodel, type = "sss"), cluster = "nonsense")