Orden de retraso para la prueba de causalidad de Granger

11

Supongamos que estoy considerando varias variables independientes para una posible inclusión en un modelo ARIMAX que estoy desarrollando. Antes de ajustar diferentes variables, me gustaría descartar variables que exhiben causalidad inversa mediante el uso de una prueba de Granger (estoy usando la granger.testfunción del MSBVARpaquete en R, aunque creo que otras implicaciones funcionan de manera similar). ¿Cómo determino cuántos retrasos se deben probar?

La función R es:, granger.test(y, p)donde yes un marco de datos o matriz, y pson los retrasos.

La hipótesis nula es que los últimos valores de no ayudan a predecir el valor de .X YpXY

¿Hay alguna razón para no seleccionar un retraso muy alto aquí (aparte de la pérdida de observaciones)?

Tenga en cuenta que ya he diferenciado cada serie de tiempo en mi marco de datos, según el orden de integración de mis series de tiempo dependientes. (Por ejemplo, diferenciar mis series temporales dependientes una vez lo hizo estacionario. Por lo tanto, también diferenciaba todas las series temporales "independientes" una vez).

ch-pub
fuente
1
Tenga en cuenta que su estrategia de diferenciación para obtener estacionariedad está sujeta a la ausencia de cointegración. Vea la excelente publicación del blog "Prueba de causalidad de Granger" por Dave Giles para más detalles.
Richard Hardy

Respuestas:

12

La compensación es entre prejuicio y poder. Muy pocos retrasos, tiene una prueba sesgada debido a la autocorrelación residual. Demasiados, se permite a los rechazos potencialmente espurios de la hipótesis nula - cierta correlación aleatoria podría hacer que parezca que ayuda a predecir . Si eso es o no una preocupación práctica depende de sus datos, supongo que se inclinará más alto, pero la longitud del retraso siempre se puede determinar de la siguiente manera:YXY

La causalidad de Granger siempre debe probarse en el contexto de algún modelo. En el caso específico de la granger.testfunción en R, el modelo tiene valores pasados ​​de cada una de las dos variables en la prueba bivariada. Entonces el modelo que usa es:

yi,t=α+l=1pβlyi,tl+γlxi,tl+ϵi,t

Una forma convencional de elegir para este modelo sería probar esta regresión con varios valores de y usar el seguimiento de AIC o BIC para cada longitud de retraso. Luego ejecute la prueba nuevamente usando el valor de que tuvo el IC más bajo en sus regresiones.p pppp

En general el número de retraso en el modelo puede ser diferente para y y una prueba de Granger todavía será apropiado. Es en el caso específico de la implementación que está restringido al mismo número de retrasos para ambos. Esto es una cuestión de conveniencia, no una necesidad teórica. Con diferentes longitudes de retraso para las dos variables, aún puede usar el AIC o BIC para seleccionar su modelo, solo tendrá que comparar muchas combinaciones retrasos de y retrasos de . Mira esto .y n x m yxygranger.testnxmy

Solo una palabra adicional: debido a que la prueba de Granger depende del modelo, el sesgo de variables omitidas puede ser un problema para la causalidad de Granger. Es posible que desee incluir todas las variables en su modelo y luego usar la causalidad de Granger para excluir bloques de ellas en lugar de usar la granger.testfunción que solo realiza pruebas por pares.

Jayk
fuente
Déjame ver si entiendo esto correctamente ... Entonces, si estoy verificando si y causa cambios en x1, entonces realizo varios ajustes: x1 ~ L (y, 1), x1 ~ L (y, 1) + L (y, 2), x1 ~ L (y, 1) + L (y, 2) + L (y, 3) ... Entonces, ¿el que tiene el mejor IC es el retraso que elijo usar para la prueba de Granger?
ch-pub
1
Sí, aunque también deberían incluirse valores rezagados de x.
jayk
No estoy seguro de entender esa parte. ¿Te refieres a algo como esto? x1 ~ L (y, 1) + L (x1,1) versus x1 ~ L (y, 1) + L (x1,1) + L (y, 2) + L (x1,2) versus ...
ch-pub
2
Si. En general, no tiene que hacerlo de esta manera porque las longitudes de retraso no tienen que ser las mismas para x e y. Ver: en.wikipedia.org/wiki/Granger_causality#Mathematical_statement Sin embargo, el comando R granger.test utiliza p valores anteriores de x AND y. Con esta especificación subyacente a la prueba, debe intentar usar IC con n valores anteriores de x AND y versus IC con n + 1 valores anteriores de x AND y.
jayk
¡No hay problema! Acabo de editar mi respuesta original para que sea un poco menos opaca.
jayk