MODELO ARIMA R
En R, un modelo ARIMA es un tipo de modelo estadístico usado para analizar y pronosticar series de tiempo
que presentan patrones de autocorrelación, tendencias y estacionalidad (en su versión SARIMA).
El nombre ARIMA viene de:
• AR (AutoRegressive) → Componente autorregresivo: el valor actual de la serie se explica como una
combinación lineal de sus valores pasados.
• I (Integrated) → Componente integrada: se aplican diferencias a la serie para volverla estacionaria
(eliminando tendencia o cambios de nivel).
• MA (Moving Average) → Componente de media móvil: el valor actual depende de errores pasados (ruido
blanco).
Un ARIMA(p, d, q) tiene tres parámetros:
• p → orden autorregresivo (número de rezagos de la variable).
• d → número de diferencias necesarias para que la serie sea estacionaria.
• q → orden de la media móvil (número de rezagos de los errores).
Ejemplo en R
Supongamos que tenemos una serie de tiempo ts_data:
r
CopiarEditar
library(forecast)
# Ajustar un modelo ARIMA automáticamente
modelo <- [Link](ts_data)
# Ver resultados
summary(modelo)
# Pronóstico a 12 periodos adelante
forecast(modelo, h = 12) |> autoplot()
Flujo típico para usar ARIMA en R
1. Explorar la serie → ver si hay tendencia o estacionalidad ([Link]).
2. Verificar estacionariedad → con pruebas como ADF o KPSS.
3. Diferenciar la serie si no es estacionaria.
4. Identificar p y q → usando gráficos ACF y PACF.
5. Ajustar el modelo → con arima() o [Link]().
6. Validar → revisando residuos y estadísticos.
7. Pronosticar.
Si quieres, puedo hacerte un ejemplo paso a paso en R usando datos reales para que veas cómo se calcula cada
parámetro de un ARIMA y cómo interpretar la salida.
Dijiste:
que es el ruido blanco
ChatGPT dijo:
En series de tiempo, ruido blanco es básicamente el equivalente estadístico de un “ruido aleatorio puro” — datos
que no tienen estructura, tendencia, estacionalidad ni correlación entre sí.
Matemáticamente, una serie de ruido blanco cumple que:
1. Media constante: E[εt]=μE[\varepsilon_t] = \muE[εt]=μ para todo ttt (usualmente μ=0\mu = 0μ=0).
2. Varianza constante: Var(εt)=σ2Var(\varepsilon_t) = \sigma^2Var(εt)=σ2 para todo ttt
(homocedasticidad).
3. No autocorrelación: Cov(εt,εt−k)=0Cov(\varepsilon_t, \varepsilon_{t-k}) = 0Cov(εt,εt−k)=0 para todo
rezago k≠0k \neq 0k =0.
Intuición
Si graficas ruido blanco, parece una nube de puntos que sube y baja de manera completamente aleatoria, sin
patrones aprovechables para pronosticar.
En ARIMA
• Después de ajustar el modelo, los residuos deben comportarse como ruido blanco.
• Esto significa que el modelo ya “extrajo” toda la estructura predecible y lo que queda es solo variación
aleatoria.
• Si los residuos no son ruido blanco, el modelo está mal especificado (faltan términos AR, MA o
diferencias).
Ejemplo en R:
r
CopiarEditar
library(forecast)
[Link](123)
ruido <- rnorm(100, mean = 0, sd = 1) # 100 observaciones de ruido blanco
[Link](ruido, main = "Serie de Ruido Blanco")
# Verificar autocorrelación
acf(ruido) # Debe mostrar barras dentro del intervalo de confianza
CODIGO INTERPRETACION
Te explico todo el flujo y lo que significan los resultados paso a paso.
1. Verificación de estacionariedad (raíz unitaria)
Se aplicaron tres pruebas clásicas:
Prueba Hipótesis nula (H0H_0H0) Resultado en tu serie DTotal
ADF (Augmented Dickey- La serie tiene raíz unitaria → No es p-value = 0.2921 → No se rechaza H0H_0H0
Fuller) estacionaria → No estacionaria
p-value = 0.5072 → No se rechaza H0H_0H0
Phillips-Perron (PP) Igual que ADF
→ No estacionaria
p-value = 0.01 → Se rechaza H0H_0H0 → No
KPSS La serie es estacionaria en nivel
estacionaria
Conclusión inicial: Las tres pruebas coinciden en que DTotal no es estacionaria, por lo que se necesita
diferenciarla.
2. Diferenciación para lograr estacionariedad
Se creó DDtotal <- diff(DTotal) y se volvieron a hacer las pruebas:
• ADF: p-value = 0.01368 → Rechaza H0H_0H0 → Estacionaria.
• PP: p-value < 0.01 → Rechaza H0H_0H0 → Estacionaria.
Conclusión: Después de una diferencia (d=1) la serie se vuelve estacionaria.
3. ADF con variantes (función [Link])
Esto sirve para identificar si la serie tiene deriva o tendencia determinística:
• type = "none" (sin deriva ni tendencia): estadístico -3.53 < -2.6 (valor crítico 1%), se rechaza H0H_0H0
→ estacionaria.
• type = "drift" (con intercepto): estadístico -4.90 < -3.51 (valor crítico 1%), intercepto significativo →
hay deriva.
• type = "trend" (con tendencia): estadístico -4.90 < -4.04 (valor crítico 1%), pero la tendencia no es
significativa (p=0.48).
Conclusión: La serie diferenciada no tiene tendencia significativa, pero sí muestra deriva.
4. Identificación del modelo ARIMA
• ACF: indica posible orden qqq.
• PACF: indica posible orden ppp.
• Como no era muy claro, se usó [Link]() y sugirió:
ARIMA(0,1,0) con driftARIMA(0,1,0) \text{ con drift}ARIMA(0,1,0) con drift
• Se probaron varios modelos manualmente:
Modelo Orden (p,d,q) AIC BIC Comentario
mod1 (0,1,0) 928.33 930.48 Peor
mod2 (1,1,0) 924.48 928.76 Bueno
mod3 (0,1,1) 925.99 930.27 Medio
mod4 (2,1,0) 925.05 931.48 Medio
mod5 (2,1,1) 920.63 929.20 Mejor AIC
Conclusión: Según AIC, el mejor es ARIMA(2,1,1). Según BIC (más estricto), el mejor es ARIMA(1,1,0).
5. Validación del modelo elegido (ARIMA(1,1,0))
• Box-Pierce test: p=0.1609 → No se rechaza H0H_0H0, residuos ~ ruido blanco.
• Residuos centrados alrededor de cero, sin autocorrelaciones importantes → modelo válido.
6. Pronóstico
Se hizo pronóstico a 4 periodos y gráfico con forecast() → proyecciones coherentes con la tendencia previa.
7. Estacionalidad
• nsdiffs(DTotal) = 0 → No requiere diferenciación estacional.
• Conclusión: No hay patrón estacional detectable.
8. Quiebres estructurales
• supF test: p-value < 2.2e-16 → Hay quiebres estructurales.
• breakpoints() identificó rupturas claras en:
o 2011(1)
o 2013(3)
o 2016(4)
o 2020(2)
• Se construyó una dummy para modelar el quiebre principal.
9. ARIMA con variable dummy
• Modelo: ARIMA(1,1,0) con dummy (xreg)
• Coeficiente de la dummy ≈ 609, significativo al 10% → el quiebre produjo un cambio de nivel en la serie.
• Box-Ljung test: p=0.4017 → residuos ~ ruido blanco.
Conclusión global
1. Serie original (DTotal) → No estacionaria, sin estacionalidad.
2. Una diferencia (d=1) → Estacionaria con deriva.
3. Modelos ARIMA probados → Mejor AIC: (2,1,1); mejor BIC: (1,1,0).
4. Validación → Residuos como ruido blanco.
5. Estructura de quiebres → Importantes rupturas, una dummy mejora el ajuste.
6. Pronóstico → Factible con ARIMA(1,1,0) con dummy.