Modelos ARIMA y SARIMA
Componentes AR, MA e I, selección de parámetros con ACF/PACF y ajuste de ARIMA con statsmodels.
Modelos ARIMA y SARIMA es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué es ARIMA?
ARIMA son las siglas de AutoRegressive Integrated Moving Average. Modela una serie estacionaria mediante tres componentes: autorregresión (p), integración o diferenciación (d) y media móvil de los errores (q), escrito como ARIMA(p, d, q).
AR(p): autorregresivo
El término AR predice el siguiente valor a partir de una combinación lineal de sus propios p valores anteriores. Si el valor de hoy depende mucho de los últimos días, necesita un valor p distinto de cero.
Ejemplo: p=2 utiliza las dos observaciones más recientes como predictores.
I(d): integración / diferenciación
El término I representa el orden de diferenciación d necesario para hacer estacionaria la serie: exactamente el valor d que obtuvo con la prueba ADF en la lección anterior. d=1 elimina una tendencia lineal.
MA(q): media móvil
El término MA modela el siguiente valor utilizando los q errores de predicción anteriores (perturbaciones). Capta las correcciones del ruido a corto plazo que la parte AR no recoge.
Ajuste de ARIMA en statsmodels
Pase la serie como endog y la tupla de orden elegida.
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(endog=series, order=(p, d, q))
fit = model.fit()
print(fit.summary())Predicción
Una vez ajustado el modelo, genere valores futuros con forecast o get_forecast, que también proporciona intervalos de confianza.
preds = fit.forecast(steps=12) # next 12 periods
fc = fit.get_forecast(steps=12)
ci = fc.conf_int() # confidence intervalsGráficos ACF y PACF
Para elegir p y q, examine los gráficos de autocorrelación:
- ACF (autocorrelación) ayuda a elegir q (orden MA).
- PACF (autocorrelación parcial) ayuda a elegir p (orden AR).
Busque el retardo en el que la correlación se corta bruscamente.
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plot_acf(series.diff().dropna())
plot_pacf(series.diff().dropna())AIC y BIC para seleccionar el orden
AIC y BIC puntúan el ajuste del modelo y penalizan su complejidad. Cuanto menor sea el valor, mejor. Ajuste varios candidatos (p,d,q) y elija el que tenga el AIC/BIC más bajo; BIC penaliza con mayor intensidad los parámetros adicionales.
print("AIC:", fit.aic)
print("BIC:", fit.bic)Búsqueda en cuadrícula de órdenes
Un enfoque habitual recorre intervalos pequeños de p, d y q, ajusta cada combinación y conserva la que tenga el AIC más bajo. Bibliotecas como pmdarima.auto_arima automatizan esta búsqueda.
best = None
for p in range(3):
for q in range(3):
try:
f = ARIMA(series, order=(p, 1, q)).fit()
if best is None or f.aic < best[1]:
best = ((p, 1, q), f.aic)
except Exception:
pass
print(best)SARIMA para la estacionalidad
SARIMA añade un componente estacional: (P, D, Q, m), donde m es la longitud de la estación (12 para datos mensuales con patrón anual). Gestiona patrones repetitivos que ARIMA por sí solo no puede tratar.
from statsmodels.tsa.statespace.sarimax import SARIMAX
model = SARIMAX(series,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12))
fit = model.fit()ARIMA frente a SARIMA
- ARIMA(p,d,q): tendencia y dependencia a corto plazo, sin estacionalidad.
- SARIMA(p,d,q)(P,D,Q,m): añade términos estacionales para ciclos repetitivos.
Si la descomposición mostró una estacionalidad clara, elija SARIMA.
Comprobación rápida
Compruebe sus conocimientos sobre ARIMA.
Resumen
Ha aprendido ARIMA(p,d,q): AR utiliza valores anteriores, I es el orden de diferenciación y MA utiliza errores anteriores. Ha ajustado el modelo con ARIMA(endog, order=...), ha elegido los órdenes mediante ACF/PACF y AIC/BIC y lo ha ampliado a SARIMA para tratar la estacionalidad. Siguiente tema: Prophet para la predicción automatizada.
Preguntas frecuentes
¿La lección «Modelos ARIMA y SARIMA» es gratis?
Sí — el texto completo de «Modelos ARIMA y SARIMA» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Modelos ARIMA y SARIMA»?
Componentes AR, MA e I, selección de parámetros con ACF/PACF y ajuste de ARIMA con statsmodels. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Modelos ARIMA y SARIMA»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Componentes y estacionariedad de series temporales
- Modelos ARIMA y SARIMA
- Prophet para previsiones automatizadas
- LSTM para previsión de series temporales