Как обновить резюме при использовании NeweyWest?

Я использую стандартные ошибки NeweyWest для исправления вывода lm() / dynlm(). Например:.

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

Коэффициенты отображаются так, как хотелось бы, но, к сожалению, я теряю всю выходную информацию регрессии, такую ​​как квадрат R, F-Test и т.д., который отображается сводкой. Поэтому я удивляюсь, как я могу отображать надежные и все остальные вещи в том же итоговом выпуске.

Есть ли способ получить все в одном вызове или перезаписать "старые" оценки? Бьюсь об заклад, я просто пропустил что-то плохое, но это действительно актуально, когда выпускаете выход.

Пример теста, взятый из ?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

Ответ 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))

Ответ 2

Если вы укажете матрицу ковариации, F-статистика изменится, и вам нужно снова вычислить ее, используя waldtest() вправо? Поскольку

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

только перезаписывает коэффициенты. Изменение F-статистики, но R ^ 2 остается неизменным.