typestar

Estacionariedad en Python

Casi todo modelo de series de tiempo la asume: prueba y diferencia primero.

import numpy as np
from statsmodels.tsa.stattools import adfuller, kpss

rng = np.random.default_rng(12)
caminata = np.cumsum(rng.normal(size=300))

estadistico, p, rezagos, nobs, criticos, _ = adfuller(caminata)
print(round(estadistico, 3), round(p, 4), "no estacionaria" if p > 0.05
      else "estacionaria")
print({k: round(v, 2) for k, v in criticos.items()})

diferenciada = np.diff(caminata)
print(round(adfuller(diferenciada)[1], 6))
print(round(kpss(diferenciada, nlags="auto")[1], 4))

Cómo funciona

  1. adfuller prueba la nula de que la serie no es estacionaria.
  2. Una tendencia hace fallar la prueba; diferenciar suele arreglarlo.
  3. kpss prueba la nula opuesta, y por eso la gente corre ambas.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
488
Tokens
150
Ritmo de tres estrellas
115 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →