【问题标题】:How can I get the entire covariance matrix from coeftest() of a panel model如何从面板模型的 coeftest() 获取整个协方差矩阵
【发布时间】:2020-04-29 14:13:06
【问题描述】:

我正在使用 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】:

    查看文档:?plm::vcovHC.plmvcovHC(panelmodel, type = "sss") 已经是您要查找的内容,它与 vcovHC(panelmodel, type = "sss", cluster = "group") 相同。

    您传递给coeftest()(而不是vcovHC())的参数cluster不会被评估,因为它是函数的未知参数并且它被传递给函数(至少对于你的例子) .您可以通过比较这三个命令的结果来检查,它们都是一样的:

    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")
    

    【讨论】:

    • 谢谢,你是对的。奇怪的是,有这么多的方法将其作为一种像这样的集群方式:blog.theleapjournal.org/2016/06/…
    • 嗯,在博客中,参数cluster 被放置为vcovHC 的参数(来自 plm 包)——这有效。在您问题的代码中,您将其作为coeftest 的参数。
    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2021-05-21
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    相关资源
    最近更新 更多