SARIMAX en Python
Órdenes estacionales y regresores exógenos, en un solo modelo.
import numpy as np
import pandas as pd
from statsmodels.tsa.statespace.sarimax import SARIMAX
rng = np.random.default_rng(15)
n = 160
estacion = 6 * np.sin(2 * np.pi * np.arange(n) / 12)
practica = rng.uniform(0, 2, size=n)
serie = pd.Series(90 + estacion + 3 * practica + rng.normal(0, 1, n))
modelo = SARIMAX(serie, exog=practica, order=(1, 0, 0),
seasonal_order=(1, 0, 0, 12)).fit(disp=False)
print(modelo.params.round(3).to_dict())
exog_futuro = np.full((4, 1), 1.0)
pronostico = modelo.get_forecast(steps=4, exog=exog_futuro)
print(pronostico.predicted_mean.round(2).tolist())
Cómo funciona
seasonal_orderes (P, D, Q, s), con s el período.exogsuma predictores externos al espacio de estados.- El pronóstico también necesita valores futuros de exog.
Palabras clave y builtins usados aquí
asprint
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 584
- Tokens
- 190
- Ritmo de tres estrellas
- 115 tpm
Al ritmo de tres estrellas de 115 tokens por minuto, este intento toma unos 99 segundos.
Paso 5 de 6 en Series de tiempo; paso 17 de 19 en Estadística con statsmodels.