【问题标题】:How to update summary when using NeweyWest?使用 NeweyWest 时如何更新摘要?
【发布时间】:2011-10-05 04:49:41
【问题描述】:

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

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

系数以我想要的方式显示,但不幸的是,我丢失了所有回归输出信息,如 R 平方、F 检验等,这些信息由摘要显示。所以我想知道如何在同一个摘要输出中显示强大的 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

【问题讨论】:

  • 所以我们很清楚,dynlm 来自dynlm 包,NeweyWest 来自sandwich 包,coeftest 来自lmtest 包?
  • @ran2,您能否将必要的libraryrequire 语句添加到您的问题中,以便它可以重现?
  • 对不起,伙计们……想着肚子……午餐时间,我饿坏了。编辑了我的帖子。感谢@Richie Cotton 的帮助!

标签: r summary lm


【解决方案1】:

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

【讨论】:

  • 非常感谢,unclass 正是我缺少的部分。抱歉延迟接受。
  • Newey West 是否更改了估算器?我所看到的是它改变了估计量的协方差,进而改变了假设检验......
  • @YeTian 不,据我所知,它不会改变估算器。它只会改变假设检验和置信区间。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    相关资源
    最近更新 更多