【问题标题】:plm-package ID-YEAR Clustered Standard Errorsplm-package ID-YEAR 集群标准错误
【发布时间】:2017-11-26 19:31:06
【问题描述】:

我一直在寻找一种方法来根据 ID-Year 聚类(每个 ID-Year 组合都被视为一个新聚类)来进行聚类标准误差。我发现plm 对象不存在这样的函数,但我有一个想法,我想知道它是否有意义:

在我的 plm 公式中,假设我有

p <- plm(y~x+factor(year), df, model="within", index=("ID","Date"), effect="individual")

pce <- coeftest(p, vcov=vcovHC(p, method = "arellano", type="sss",cluster="group"))

我是否可以简单地为 LSDV 模型分配一个索引,该索引仅表示 ID-Year 组合,如下所示:

df$IDYEAR <- paste(df$ID,df$YEAR)

p1 <- plm(y~x+factor(year)+factor(ID), df, model="pooling", index=("IDYEAR"))

p1ce <- coeftest(p1, vcov=vcovHC(p1, method = "arellano", type="sss",cluster="group"))

这应该估计几乎完全相同的模型,同时欺骗我的 plm 函数认为组级别是 IDYEAR 以便我得到正确的标准错误。我的想法在这里正确吗?

【问题讨论】:

  • 你检查vcovDC是否符合你的要求?
  • 嘿,感谢您的快速提示。 vcovDC 似乎与我相似,但它在 NA 中产生一些标准错误,这可能是因为它以我的“日期”索引作为其第二种聚类方式的参数。我宁愿每年进行一次集群,因为 a)我认为它会产生 NA 并且 b)我认为没有经济理由在每一天对每个人进行不同的对待。你有想法用不同的变量来喂养它吗?简单地将内部模型的索引设置为“ID”、“YEAR”会产生错误。 (Error in pdim.default(index[[1]], index[[2]]) : duplicate couples (id-time))
  • 也许你可以看看其他 vcov 包,例如multiwayvcov
  • JSS 最近的概述中给出了plm 中灵活协方差估计器的出色概述:dx.doi.org/10.18637/jss.v082.i03 如果您可以采用池化方法,您还可以使用 lm() 估计模型然后使用sandwich 包中的vcovCL()(参见EconPapers.repec.org/RePEc:inn:wpaper:2017-12),该包在其最新版本中包含了multiwayvcov 的大部分功能。
  • 感谢您的回复!我去看看,到目前为止我还没有找到任何其他答案:)

标签: r plm standard-error


【解决方案1】:

我认为,应该对vcovDC 进行细微调整

    vcovDC <- function(x, ...){
    vcovHC(x, cluster="group", ...) + vcovHC(x, cluster="time", ...) - 
        vcovHC(x, method="white1", ...)
}

相当简洁的解释here

这也适用于您的 LSDV 示例。

【讨论】:

    猜你喜欢
    • 2022-12-04
    • 2021-06-27
    • 2017-10-17
    • 2020-12-22
    • 2011-05-24
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多