typestar

¿Una serie anticipa a la otra? en Python

La prueba de Granger pregunta si el pasado de x mejora un pronóstico de y.

import numpy as np
from statsmodels.tsa.stattools import grangercausalitytests

rng = np.random.default_rng(16)
n = 300
lider = rng.normal(size=n)
seguidor = np.zeros(n)
for i in range(2, n):
    seguidor[i] = 0.5 * lider[i - 2] + rng.normal(scale=0.5)

datos = np.column_stack([seguidor, lider])
resultados = grangercausalitytests(datos, maxlag=3, verbose=False)

for rezago, resultado in resultados.items():
    p = resultado[0]["ssr_ftest"][1]
    print(f"rezago {rezago}: p={p:.5f}")

Cómo funciona

  1. Los datos entran como dos columnas, y primero.
  2. maxlag acota qué tan atrás mirar.
  3. Prueba predicción, que no es lo mismo que causalidad.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
475
Tokens
142
Ritmo de tres estrellas
115 tpm

Al ritmo de tres estrellas de 115 tokens por minuto, este intento toma unos 74 segundos.

Escribe este fragmento

Paso 6 de 6 en Series de tiempo; paso 18 de 19 en Estadística con statsmodels.

← Anterior Siguiente →