ARIMA en Python
Orden (p, d, q), un ajuste, y un pronóstico con intervalo.
import numpy as np
import pandas as pd
from statsmodels.tsa.arima.model import ARIMA
rng = np.random.default_rng(14)
valores = np.zeros(200)
for i in range(1, 200):
valores[i] = 0.6 * valores[i - 1] + rng.normal()
serie = pd.Series(valores + 90)
model = ARIMA(serie, order=(1, 0, 0)).fit()
print(model.params.round(4).to_dict())
print(round(model.aic, 2), round(model.bic, 2))
pronostico = model.get_forecast(steps=3)
print(pronostico.predicted_mean.round(2).tolist())
print(pronostico.conf_int(alpha=0.05).round(2).to_numpy()[0])
Cómo funciona
des cuántas veces se diferencia la serie.get_forecastda el intervalo;pronostico, solo el punto.- El AIC es lo que comparas al elegir un orden.
Palabras clave y builtins usados aquí
asforprintrangeround
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 533
- Tokens
- 178
- Ritmo de tres estrellas
- 115 tpm
Al ritmo de tres estrellas de 115 tokens por minuto, este intento toma unos 93 segundos.
Paso 4 de 6 en Series de tiempo; paso 16 de 19 en Estadística con statsmodels.