10 votos

¿Cómo utilizar la prueba de causalidad de Granger de statsmodels para medir el rezago entre dos series temporales?

Estoy utilizando la prueba de causalidad de Granger para medir el rezago entre pares de series temporales donde ya es evidente que una sigue a la otra. Por lo tanto, no espero que esta prueba me diga si la causalidad es probable o no, sino más bien ayudarme a medir cuál es el rezago.

La pregunta es: ¿es mi método para ordenar la hipótesis de rezago óptimo? La medición arroja un resultado sensato en la mayoría de los casos, pero hay algunos donde el resultado es un rezago contra intuitivo y muy largo.

A continuación, describiré primero mi método y luego mostraré dos ejemplos, uno donde mi método funciona y otro donde no.

El método: Estoy utilizando statsmodels, que viene con un módulo de prueba de Granger. En mi método ejecuto la prueba de Granger para rezagos entre 1 y 12 días. Luego, examino los valores de la prueba F. El rezago con el valor F más alto es el óptimo. Aquí está el código en Python:

granger_test_result = grangercausalitytests(data[:, 1::-1], maxlag=12, verbose=False)

optimal_lag = -1
F_test = -1.0
for key in granger_test_result.keys():
    _F_test_ = granger_test_result[key][0]['params_ftest'][0]
    if _F_test_ > F_test:
        F_test = _F_test_
        optimal_lag = key
return optimal_lag

Ejemplo #1: Esta figura ilustra el tipo de datos que estoy analizando. Es evidente que la serie verde sigue a la serie naranja. En este caso, mi método funciona bastante bien y se encuentra que el rezago óptimo es de 1 día.

dos series temporales con un rezago, según la prueba de causalidad de Granger, de 1 día

Ejemplo #2: En este caso, mi método arroja un rezago contra intuitivo y muy largo de 12 días.

Introducir descripción de la imagen aquí

Este es el resultado de la prueba F de statsmodels para cada uno de los rezagos probados. El primer elemento en la tupla corresponde al valor de la prueba F. El valor más alto es, de hecho, para 12L.

Rezago óptimo 12. Prueba F: 74.84. Valor p: 0.00
(32.153600306648876, 4.9523452120563632e-07, 57.0, 1L)
(51.600830587070561, 2.9531736086260536e-13, 54.0, 2L)
(46.061291459709828, 1.511140176815108e-14, 51.0, 3L)
(34.512420150659764, 1.4224612929215072e-13, 48.0, 4L)
(22.215895296628979, 3.7705907562143266e-11, 45.0, 5L)
(18.817209069293003, 1.7380007128923565e-10, 42.0, 6L)
(14.366562461309808, 4.6093266266687769e-09, 39.0, 7L)
(11.296513565933811, 7.9114754208643629e-08, 36.0, 8L)
(12.008824010113649, 3.9713072573193326e-08, 33.0, 9L)
(10.237915003417235, 3.1897816507786703e-07, 30.0, 10L)
(9.7564732369412628, 8.1924196528108249e-07, 27.0, 11L)
(74.843204319602407, 5.2948535623699612e-16, 24.0, 12L)

4 votos

¿Por qué no mirar la autocorrelación (ACF) y la autocorrelación parcial (PACF) en su lugar? Son medidas directas de las relaciones de avance-retroceso, mientras que la causalidad de Granger es indirecta en el mejor de los casos y irrelevante en el peor (dependiendo de las propiedades de la serie).

0 votos

¿Estás seguro de que este es realmente un caso de uso de la causalidad de Granger? ¡Corrígeme si me equivoco, pero supongamos que tienes un conjunto de series temporales que están cointegradas, ¿no existe algún teorema que diga algo acerca de que una serie de Granger causa la otra?

2voto

andrewtj Puntos 276

La selección de la longitud del rezago en las pruebas de causalidad de Granger suele basarse en criterios de información (AIC, BIC, etc.) en lugar de una comparación de la prueba F. Pero la causalidad de Granger parece no ser el concepto adecuado para tu propósito de "medir cuál es el rezago". Aplicar criterios de selección de modelos (por ejemplo, criterios de información) en pruebas de causalidad de Granger no te dice cuál es "el" rezago, sino que busca el número de rezagos, de tal manera que el último rezago añadido de una variable aún mejore la predicción de la otra variable.

0voto

elijaheac Puntos 170

Para resolver el problema "la correlación no implica necesariamente causalidad" -- Prueba de Causalidad de Granger en Python se utiliza y muestra si X y sus rezagos están pronosticando Y, lo que significa que X & Y son Causa & Efecto, - por lo tanto la esencia: ajustando VAR. Pero no analizando los rezagos de una serie temporal (como X). Para medir cuál es el rezago en una serie temporal debes ver el factor de autocorrelación.

Más preciso (aquí): "Solo probamos si X (y sus rezagos) es útil para explicar Y, y por lo tanto ayudar a pronosticarlo. Por lo tanto, no nos preocupa la verdadera relación causal entre las variables.". E importante: ts_s debería ser estacionaria, lo que significa que la media y la varianza no cambian en el tiempo

Aquí hay 4 pruebas para la inexsistencia de causalidad de Granger de 2 series temporales, apuntando a la hipótesis de las pruebas de causalidad (interpretación) -- y puedes aplicar cualquiera de ellas o todas - para aprobar tu conclusión realizada

H0 : X no causa de manera granger a Y, H1 : X causa granger a Y, si el valor p > 0.05 entonces se acepta H0

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X