typestar

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

  1. seasonal_order es (P, D, Q, s), con s el período.
  2. exog suma predictores externos al espacio de estados.
  3. El pronóstico también necesita valores futuros de exog.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

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

← Anterior Siguiente →