Calcule los errores estándar de Newey-West sin un objeto lm en R

13

Hice esta pregunta ayer en StackOverflow, y obtuve una respuesta, pero acordamos que parece un poco hack y que puede haber una mejor manera de verlo.

La pregunta: me gustaría calcular los errores estándar de Newey-West (HAC) para un vector (en este caso, un vector de devoluciones de acciones). La función NeweyWest()en el sandwichpaquete hace esto, pero toma un lmobjeto como entrada. La solución ofrecida por Joris Meys es proyectar el vector en 1, lo que convierte mi vector en residuos para alimentar NeweyWest(). Es decir:

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

para la varianza de la media.

¿Debería hacerlo así? ¿O hay una manera de hacer más directamente lo que quiero? ¡Gracias!

Richard Herron
fuente
1
La pregunta no está clara. ¿Qué quiere decir con "error estándar para un vector"? Por lo general, queremos el error estándar de una estimación de parámetros. ¿Qué parámetro estás estimando? El código que proporcionó produce la estimación de Newey West del error estándar al cuadrado de la media. ¿Es eso lo que quieres?
Cyrus S
@Cyrus - Por "vector" quiero decir que no es un lmobjeto. Con frecuencia tengo un vector (digamos una serie de devoluciones de acciones) que no quiero involucrar en ninguna regresión (porque no me importa su proyección, excepto en 1), pero para el que todavía quiero el HAC Error estándar. En este caso, la estimación del parámetro es el rendimiento del stock. La respuesta anterior hace eso, pero requiere calcular el lmobjeto, que realmente no necesito. Así que me pregunto si hay una rutina en R que haga esto sin crear un lmobjeto.
Richard Herron
Lo sentimos, aún no está claro: "En este caso, la estimación del parámetro es la devolución de existencias". Con eso, ¿te refieres al "promedio de los rendimientos de las acciones en la serie"? Si es así, entonces lo que tienes está perfectamente bien.
Cyrus S
@Cyrus: sé que lo que tengo funciona, pero esperaba que haya una manera de calcular los SE sin pasar por el lmobjeto para el caso de un solo vector. Supongo que no. ¡Gracias por ayudarme a aclarar mi pregunta!
Richard Herron

Respuestas:

15

Supongamos que tenemos una regresión

y=Xβ+tu

Entonces OLS estiman β es β - β = ( X ' X ) - 1 X ' u y suponiendo que β es estimación no sesgada tenemos V un r ( β ) = E [ ( X ' X ) - 1 X ' u u X ( X X ) - 1 ]β^

β^-β=(XX)-1Xtu
β^
Vunr(β^)=mi[(XX)-1XtutuX(XX)-1]

mi(tuEl |X)=0 0mi(tutuEl |X)=σ2yonorte

Vunr(β^)=σ2mi(XX)-1

tuyomi(tutuEl |X)σ2yonorte

reyounsol(mi(XX)-1XtutuX(XX)-1).
mi(tutuEl |X)

NeweyWest

rt=μ+tut
Vunr(μ)tut

Vunr(rt)

rt=σtεt
εtσtVunr(rt)=Vunr(σt) y tiene una estimación "correcta" de su variación, evitando las idiosincrasias habituales de los rendimientos de las acciones, como la agrupación de volatilidad, la asimetría, etc.
mpiktas
fuente
¡Gracias! Puede que no haya una forma más eficiente de codificar esto que formando el lmobjeto.
Richard Herron
¡Supongo que el lmobjeto es el camino a seguir! Gracias por un gran resumen ... a veces en la aplicación me alejo demasiado de la teoría.
Richard Herron