Seite 1 von 1
Lineare Regression Verwendung Newey-West-Korrektur
Verfasst: So Jun 16, 2019 3:30 pm
von Tim Herrlich
Hallo zusammen,
ich schreibe gegenwärtig meine Masterthesis und untersuche, ob der Verschuldungsgrad von Unternehmen (abhängige Variable) von dem Fremdkapitalzinssatz (unabhängige Variable) beeinflusst wird.
Hierzu habe ich die Bilanzpositionen von 52 Unternehmen zum Quartalsende über 11 Jahre herangezogen.
Bei einigen Regressionen erhalte ich jedoch autokorrelierte und heteroskedastische Residuen.
Um dem zu begegnen möchte ich die Newey-West-Korrektur anwenden und verwende folgenden Code:
Code: Alles auswählen
Puma1<-lm(MVG[,"Puma SE"]~MVG[,"DIF_Zins_5"])
summary(Puma1)
coeftest(Puma1)
coeftest(Puma1,vcov=NeweyWest(Puma1))
und erhalte folgenden Output:
Code: Alles auswählen
. Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0013314 0.0046222 -0.2881 0.7748
MVG[, "DIF_Zins_5"] 1.4595723 2.2525500 0.6480 0.5206
Meine Frage ist nun: Habe ich jetzt die Daten einer Regression ohne autokorrelierte und heteroskedastische Residuen vollständig? Das bei der ursprünglichen Regression mit autokorrelierten Residuen erhalten R-Squared bleibt bestehen richtig?
Da dies mein erster Beitrag ist und ich noch nicht mit den Gepflogenheiten dieses Forum vertraut bin, bitte ich um Rücksicht und bin dankbar für jeden Tipp.
Vielen Dank im Voraus!
Freundliche Grüße
Tim
Re: Lineare Regression Verwendung Newey-West-Korrektur
Verfasst: Mo Jun 17, 2019 8:32 am
von jogo
Hallo Tim,
willkommen im Forum!
Tim Herrlich hat geschrieben: So Jun 16, 2019 3:30 pm
Hierzu habe ich die Bilanzpositionen von 52 Unternehmen zum Quartalsende über 11 Jahre herangezogen.
Das klingt nach Panel-Daten.
Bei einigen Regressionen erhalte ich jedoch autokorrelierte und heteroskedastische Residuen.
Das halte ich bei Panel-Daten für wahrscheinlich. Schau Dir mal das Paket
plm an.
... und verwende folgenden Code:
Funktionert eigentlich:

(ich bin mir nicht ganz sicher wegen des Leezeichens im Namen für die Spalte.)
Gruß, Jörg
Re: Lineare Regression Verwendung Newey-West-Korrektur
Verfasst: Mo Jun 17, 2019 11:21 am
von Tim Herrlich
Hallo Jörg,
herzlichen Dank für Deine Antwort!
Das Paket habe ich in der Tat auch schon entdeckt, aufgrund eines anderen Beitrags in diesem Forum.
Allerdings funktioniert die Formel zur Newey-West-Korrektur nicht, da ich folgende Fehlermeldung erhalte:
Code: Alles auswählen
> vcovNW(lm(MVG[,"Puma SE"]~MVG[,"DIF_Zins_5"]))
Fehler in UseMethod("vcovNW") :
nicht anwendbare Methode für 'vcovNW' auf Objekt der Klasse "lm" angewendet
Ich verstehe das so, dass die Formel nicht für eine lineare Regression mit lm() angewendet werden kann.
Bei der ursprünglichen Formel aus dem Sandwich-Paket erhalte ich ja ein Ergebnis, bin mir nur nicht ganz sicher, ob es das finale Ergebnis ist:
Code: Alles auswählen
> coeftest(Puma1,vcov=NeweyWest(Puma1))
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0013314 0.0046222 -0.2881 0.7748
MVG[, "DIF_Zins_5"] 1.4595723 2.2525500 0.6480 0.5206
Wenn ich Deine Formel übernehme, erhalte ich folgende Fehlermeldung:
Code: Alles auswählen
Fehler in model.frame.default(formula = "Puma SE" ~ "DIF_Zins_5", data = MVG, :
'data' must be a data.frame, not a matrix or an array
Vielen Dank für Deine Hilfe!
Freundliche Grüße
Tim
Re: Lineare Regression Verwendung Newey-West-Korrektur
Verfasst: Mo Jun 17, 2019 1:36 pm
von jogo
Hallo Tim,
Tim Herrlich hat geschrieben: Mo Jun 17, 2019 11:21 am
Das Paket habe ich in der Tat auch schon entdeckt, aufgrund eines anderen Beitrags in diesem Forum.
Allerdings funktioniert die Formel zur Newey-West-Korrektur nicht, da ich folgende Fehlermeldung erhalte:
Code: Alles auswählen
> vcovNW(lm(MVG[,"Puma SE"]~MVG[,"DIF_Zins_5"]))
Fehler in UseMethod("vcovNW") :
nicht anwendbare Methode für 'vcovNW' auf Objekt der Klasse "lm" angewendet
Ich verstehe das so, dass die Formel nicht für eine lineare Regression mit lm() angewendet werden kann.
genau.
Die Funktion
vcovNW() stammt aus dem Paket plm(). Dort steht im Hilfetext über das erste Argument:
x : an object of class "plm" or "pcce", siehe
Üblicherweise haben solche formalen Beschränkungen auch einen sachlogischen Grund.
Wenn ich Deine Formel übernehme, erhalte ich folgende Fehlermeldung:
Code: Alles auswählen
Fehler in model.frame.default(formula = "Puma SE" ~ "DIF_Zins_5", data = MVG, :
'data' must be a data.frame, not a matrix or an array
Ja, das ist eine ungewöhnliche Datenverwaltung (wenn man keine Dataframes für sowas verwendet). Folgendes sollte funktionieren:
Code: Alles auswählen
Puma1 <- lm(`Puma SE` ~ DIF_Zins_5, data=as.data.frame(MVG))
Gruß, Jörg
Re: Lineare Regression Verwendung Newey-West-Korrektur
Verfasst: Mo Jun 17, 2019 8:08 pm
von Tim Herrlich
Hallo Jörg,
vielen Dank für Deine erneute Antwort!
Ich schreibe meine Thesis, während ich Vollzeit arbeite.
Aus diesem Grund kann ich nicht immer zeitnah antworten. Ich habe gerade auf die schnelle versucht Deine Antwort umzusetzen und Ergebnisse zu erzielen. Dies hat allerdings nicht funktioniert, dafür möchte ich mich morgen einmal intensiv damit auseinandersetzen.
Danach werde ich meine Ergebnisse posten.
Herzlichen Dank für Deine Unterstützung und einen schönen Abend!
Freundliche Grüße
Tim
Re: Lineare Regression Verwendung Newey-West-Korrektur
Verfasst: Mi Jun 19, 2019 8:10 am
von Tim Herrlich
Hallo Jörg,
ich habe gestern längere Zeit versucht die Formel ans Laufen zu bekommen, was leider nicht funktioniert hat.
Was spricht denn dagegen die Formel aus meinem ersten Post zu verwenden?
Freundliche Grüße
Tim