Seite 1 von 1

adjusted r squared in coeftest()

Verfasst: Di Feb 14, 2017 9:27 pm
von tr206
Hallo,
ich möchte eine lineare Regression erstellen mittels lm() wobei die standard errors robust sein sollen. Ich will Newey West standard errors errechnen und einmal HAC standard errors.

Code: Alles auswählen

library(sandwich)
library(lmtest)
#Run linear regression
regression_g<-lm(g ~ MILL + equity.premium + Zt.rw + SENT + Cape, data = VAR_analsis_DataUSA)
coefNW<-coeftest(regression_g, vcov. = NeweyWest(regression_g, lag = 12, prewhite = FALSE))
coefHAC<-coeftest(regression_g, vcov. = vcovHAC(regression_g, prewhite = FALSE))
summary(regression_g)
coefNW
coefHAC
Das Problem ist nun, dass mir coeftest() nicht die statistics liefert wie z.B. das adjusted R squared, F-statistic usw. Also alle statistics die mir summary() liefert bekomme ich nicht bei coeftest().

Ich möchte dann im nächsten Schritt mittels stargazer() eine Tabelle mit allen statistics erstellen, d.h. das soll dann so aussehen als würde ich stargazer() auf regression_g anwenden nur dass die standard errors nach HAC oder Newey West geschätzt wurden

Weiß jemand wie ich in coeftest() diese statistics bekommen kann?

Re: adjusted r squared in coeftest()

Verfasst: Di Feb 14, 2017 11:51 pm
von EDi
Man kann die summary mit den robusten Fehlern überschreiben (coefficient + F-wert, p-Wert wird aus dem F-Wert und den df on the fly berechnet, R2 ändert sich nicht).

Code: Alles auswählen

library(lmtest)
library(sandwich)

# some data & model
data("Mandible", package = "lmtest")
fm <- lm(length ~ age, data = Mandible, subset=(age <= 28))
(fm_sum <- summary(fm))
str(fm_sum)


fm_sum_rob <- fm_sum
# update coefficients using HC
fm_sum_rob$coefficients <- unclass(coeftest(fm, vcov = vcovHC))
# update F uisng HC
fm_sum_rob$fstatistic['value'] <- waldtest(fm, vcov = vcovHC)$F[2]

fm_sum_rob
fm_sum
BTW: Du bist schon lange genug dabei, dass du Wissen solltest, dass eine reproduzierbares Beispiel uns das Leben einfacher macht!
Die nächsten Fragen von dir ohne ein reproduzierbares Beispiel werde ich nicht weiter beachten.

Re: adjusted r squared in coeftest()

Verfasst: Mi Feb 15, 2017 10:21 pm
von tr206
Danke. Das läuft ganz gut aber wenn ich den waldtest() mache gibt mir R für die F-statistic einen anderen p-Wert an als in der überschriebenen Tabelle. D.h. waldtest() liefert einen anderen p-Wert als ich für fm_sum_rob bekommen würde, also in der upgedateten Tabelle.

Kann das sein?

Re: adjusted r squared in coeftest()

Verfasst: Do Feb 16, 2017 9:45 am
von EDi
Hmm, dann musst du vielleicht auch die Freiheitsgrade in der summary übernehmen...
Aufjedenfall tut die summary (aus F und df) den p-wert on the fly berechnen.
Habs mir nicht so genau angeschaut.... Aber das könnte der Grund sein.

Als alternative, könntest du die eine eigene summary_rob und print.summary_rob schreiben.
Ist vermutlich besser, als summary.lm zu hacken... Dann kannst du auch den p-wert übernehmen...

Re: adjusted r squared in coeftest()

Verfasst: Fr Feb 17, 2017 10:50 pm
von tr206
Wenn ich richtig verstehe kann ich den ersten Teil des codes mit der Korrektur der coefficients mittels HC so übernehmen. Als zweiten Schritt nehme ich waldtest() und verwende dieses Ergebnis um summary_rob zu erstellen?
Wie krieg ich dann das R squared und den F-value mit dem p-value zusammen in eine Tabelle?