Как обновить сводку при использовании NeweyWest? - PullRequest
16 голосов
/ 14 июля 2011

Я использую стандартные ошибки 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

Ответы [ 2 ]

16 голосов
/ 14 июля 2011

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))
0 голосов
/ 22 января 2013

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...