16

我正在使用 NeweyWest 标准错误来更正我的lm() / dynlm()输出。例如:

fit1<-dynlm(depvar~covariate1+covariate2)
coeftest(fit1,vcov=NeweyWest)

系数以我想要的方式显示,但不幸的是,我丢失了所有回归输出信息,如 R 平方、F-Test 等,这些信息由摘要显示。所以我想知道如何在同一个摘要输出中显示强大的 se 和所有其他内容。

有没有办法在一个电话中获得所有内容或覆盖“旧”估计?我敢打赌我只是错过了一些严重的事情,但这在编织输出时确实很重要。

测试示例,取自?dynlm.

require(dynlm)
require(sandwich)
data("UKDriverDeaths", package = "datasets")
uk <- log10(UKDriverDeaths)
dfm <- dynlm(uk ~ L(uk, 1) + L(uk, 12))

#shows R-squared, etc.
summary(dfm)

#no such information
coeftest(dfm, vcov = NeweyWest)

顺便说一句:同样适用于vcovHC

4

2 回答 2

18

coefficients只是lm(或dynlm)摘要对象中的一个矩阵,所以您需要做的就是unclass输出coeftest()

library(dynlm)
library(sandwich)
library(lmtest)
temp.lm <- dynlm(runif(100) ~ rnorm(100))
temp.summ <- summary(temp.lm)
temp.summ$coefficients <- unclass(coeftest(temp.lm, vcov. = NeweyWest))
于 2011-07-14T14:45:59.807 回答
0

waldtest()如果您指定协方差矩阵,则 F 统计量会发生变化,您需要使用right?再次计算它?因为

temp.summ$coefficients <- unclass(coeftest(temp.lm, vcov. = NeweyWest))

只覆盖系数。F 统计量发生变化,但 R^2 保持不变。

于 2013-01-21T21:04:18.420 回答