我正在使用NeweyWest标准错误来纠正我的lm() / dynlm()
输出。 E.g:
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)
btw。:同样适用于vcovHC
答案 0 :(得分:16)
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))
答案 1 :(得分:0)
如果指定协方差矩阵,F统计数据会发生变化,您需要使用waldtest()
再次计算它吗?因为
temp.summ$coefficients <- unclass(coeftest(temp.lm, vcov. = NeweyWest))
仅覆盖系数。 F统计变化但R ^ 2保持不变。