Berechnen Sie Newey-West-Standardfehler ohne ein lm-Objekt in R

13

Ich habe diese Frage gestern auf StackOverflow gestellt und eine Antwort bekommen, aber wir waren uns einig, dass sie etwas hackisch wirkt und es eine bessere Möglichkeit gibt, sie zu betrachten.

Die Frage: Ich möchte die Newey-West (HAC) -Standardfehler für einen Vektor (in diesem Fall einen Vektor für Aktienrenditen) berechnen. Die Funktion NeweyWest()im sandwichPaket führt dies aus, nimmt jedoch ein lmObjekt als Eingabe. Die von Joris Meys angebotene Lösung besteht darin, den Vektor auf 1 zu projizieren, wodurch mein Vektor in Residuen umgewandelt wird, in die er eingespeist werden kann NeweyWest(). Das ist:

as.numeric(NeweyWest(lm(rnorm(100) ~ 1)))

für die Varianz des Mittelwerts.

Soll ich das so machen? Oder gibt es eine Möglichkeit, direkter zu tun, was ich will? Vielen Dank!

Richard Herron
quelle
1
Frage ist nicht klar. Was meinen Sie mit "Standardfehler für einen Vektor"? Normalerweise wollen wir den Standardfehler einer Parameterschätzung. Welchen Parameter schätzen Sie? Der von Ihnen angegebene Code liefert die Newey West-Schätzung des quadratischen Standardfehlers des Mittelwerts. Ist es das was du willst?
Cyrus S
@ Cyrus - Mit "Vektor" meine ich kein lmObjekt. Ich habe häufig einen Vektor (sagen wir eine Reihe von Aktienrenditen), den ich nicht in irgendwelche Regressionen einbeziehen möchte (weil mir die Projektion außer auf 1 egal ist), für den ich aber immer noch den HAC möchte Standart Fehler. In diesem Fall ist die Parameterschätzung die Bestandsrendite. Die obige Antwort tut dies, erfordert jedoch die Berechnung des lmObjekts, das ich wirklich nicht brauche. Ich frage mich also, ob es in R eine Routine gibt, die dies tut, ohne ein lmObjekt zu erstellen .
Richard Herron
Entschuldigung, immer noch nicht klar: "In diesem Fall ist die Parameterschätzung die Aktienrendite." Meinen Sie damit den "Durchschnitt der Aktienrenditen in der Serie"? Wenn ja, dann ist das, was Sie haben, vollkommen in Ordnung.
Cyrus S
@ Cyrus - Ich weiß, dass das, was ich habe, funktioniert, aber ich hatte gehofft, dass es lmfür den Fall eines einzelnen Vektors eine Möglichkeit gibt, die SEs zu berechnen, ohne das Objekt zu durchlaufen . Ich denke nicht. Vielen Dank, dass Sie mir bei der Klärung meiner Frage geholfen haben!
Richard Herron

Antworten:

15

Angenommen, wir haben eine Regression

y=Xβ+u

Dann schätzt OLS β beträgt β - β = ( X ' X ) - 1 X ' u und unter der Voraussetzung , dass β unverzerrte Schätzung ist , haben wir V a r ( β ) = E [ ( X ' X ) - 1 X ' u u ' X ( X ' X ) - 1 ]β^

β^-β=(XX)-1Xu
β^
Veinr(β^)=E[(XX)-1XuuX(XX)-1]

E(u|X)=0E(uu|X)=σ2ichn

Veinr(β^)=σ2E(XX)-1

uichE(uu|X)σ2ichn

diag(E(XX)1XuuX(XX)1).
E(uu|X)

Es ist also selbstverständlich, dass die Funktion ein NeweyWestlineares Modell anfordert. Die Newey-West-Methode berechnet die korrekten Standardfehler des linearen Modellschätzers. Ihre Lösung ist also vollkommen richtig, wenn Sie davon ausgehen, dass Ihre Aktienrenditen dem Modell entsprechen

rt=μ+ut
Veinr(μ)ut

Veinr(rt)

rt=σtεt
εtσtVeinr(rt)=Veinr(σt) und Sie haben eine "korrekte" Schätzung Ihrer Varianz, die sich gegen die üblichen Eigenheiten von Aktienrenditen wie Volatilitätsclustering, Skewness usw. schützt.
mpiktas
quelle
Vielen Dank! Es gibt für mich möglicherweise keinen effizienteren Weg, dies zu codieren, als das lmObjekt zu bilden.
Richard Herron
Ich denke, das lmObjekt ist der richtige Weg! Danke für eine tolle Zusammenfassung ... manchmal komme ich in der Anwendung zu weit von der Theorie.
Richard Herron