使用用户提供的协方差矩阵计算 F 统计量

computing F statistic with user supplied covariance matrix

查看下面的编辑

使用包 plm,我想知道为什么 summary() 显示的 F 统计量在我提供协方差矩阵(用于稳健标准误差)后不会改变。考虑以下代码,我没有得到 summery() 计算的 F 统计量的变化。但是,waldtest() 计算的 F 统计量发生变化:

require(plm)
require(lmtest)
data("Grunfeld")
gp <- plm(inv ~ value + capital,data=Grunfeld,model="pooling")

# summary() and waldtest() yield  same F statistic [w/o user supplied covariance matrix]
summary(gp)
waldtest(gp, test="F")

# summary() and waldtest() yield different  F statistic [w/ user supplied covariance matrix]
summary(gp, .vcov = plm::vcovHC(gp, "white2"))
waldtest(gp, test="F", vcov=plm::vcovHC(gp, "white2"))

考虑 this post about Stata's robust standard erros 并比较 F 统计量 w/ 和 w/o 稳健标准误差的输出,我觉得 F 统计量应该改变。

这是 plm 1.4(然后是稳定版)。

EDIT: pwaldtestplm 的 CRAN 版本 1.6-4 中做到了这一点,现在并入 summary.plm 因此,简单运行 以下之一将给出调整后的 df2 参数的稳健 F 检验:

summary(gp, vcov = plm::vcovHC(gp, "white2"))
pwaldtest(gp, test="F", vcov = plm::vcovHC(gp, "white2"))

这里是从业者稳健推理的一个很好的参考:Cameron/Miller,"A Practitioner's Guide to Cluster-Robust Inference",Journal of Human Resources,Spring 2015,第 50 卷,第 2 期,pp. 317-373。 http://cameron.econ.ucdavis.edu/research/papers.html

如果您查看 plm:::summary.plm 的源代码,您会发现第一行是:object$fstatistic <- Ftest(object, test = "F")。因此,.vcov 参数不会传递给 plm:::Ftest(),因此 F 统计量根本不会受到影响。您可以联系 plm 维护者并要求对此进行改进或至少在手册页上指出。目前,.vcov 仅用于每个系数的部分 Wald 测试,即对应于 lmtest 通过 coeftest(gp, vcov = vcovHC(gp, "white2")).

计算的内容