如何从面板模型的coeftest()中获取整个协方差矩阵?

问题描述 投票:0回答:1

我正在使用的面板回归软件是 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 对象一起使用,所以这个包被淘汰了。

covariance plm
1个回答
1
投票

见文件。?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")
© www.soinside.com 2019 - 2024. All rights reserved.