A medida que avanzo en el pronóstico con los modelos ARIMA, estoy tratando de entender cómo puedo mejorar un pronóstico basado en el ajuste ARIMA con la estacionalidad y la deriva.
Mis datos son las siguientes series temporales (más de 3 años, con una clara tendencia al alza y una estacionalidad visible, que parece no estar respaldada por la autocorrelación en los rezagos 12, 24, 36 ??).
> bal2sum3years.ts
Jan Feb Mar Apr May Jun Jul Aug
2010 2540346 2139440 2218652 2176167 2287778 1861061 2000102 2560729
2011 3119573 2704986 2594432 2362869 2509506 2434504 2680088 2689888
2012 3619060 3204588 2800260 2973428 2737696 2744716 3043868 2867416
Sep Oct Nov Dec
2010 2232261 2394644 2468479 2816287
2011 2480940 2699780 2760268 3206372
2012 2951516 3119176 3032960 3738256
El modelo sugerido por auto.arima(bal2sum3years.ts)
me dio el siguiente modelo:
Series: bal2sum3years.ts
ARIMA(0,0,0)(0,1,0)[12] with drift
Coefficients:
drift
31725.567
s.e. 2651.693
sigma^2 estimated as 2.43e+10: log likelihood=-321.02
AIC=646.04 AICc=646.61 BIC=648.39
Sin embargo, acf(bal2sum3years.ts,max.lag=35)
no muestra coeficientes acf superiores a 0,3. Sin embargo, la estacionalidad de los datos es bastante obvia: un pico al comienzo de cada año. Así es como se ve la serie en el gráfico:
El uso del pronóstico fit=Arima(bal2sum3years.ts,seasonal=list(order=c(0,1,0),period=12),include.drift=TRUE)
, llamado por función forecast(fit)
, da como resultado que los medios de los próximos 12 meses sean iguales a los últimos 12 meses de los datos más constante. Esto se puede ver llamando plot(forecast(fit))
,
También he verificado los residuos, que no están autocorrelacionados pero tienen una media positiva (no cero).
El ajuste no modela la serie de tiempo original con precisión, en mi opinión (azul la serie de tiempo original, rojo es el fitted(fit)
:
La pregunta es, ¿el modelo es incorrecto? ¿Me estoy perdiendo de algo? ¿Cómo puedo mejorar el modelo? Parece que el modelo literalmente toma los últimos 12 meses y agrega una constante para lograr los próximos 12 meses.
Soy un principiante relativo en modelos de pronóstico de series de tiempo y estadísticas.
Respuestas:
Sí, de hecho, el modelo sugerido es "Este junio = Último junio + constante + error", y de manera similar para los otros meses.
¿Qué tiene de malo eso exactamente? Parece ser una excelente descripción de sus datos.
Puede encontrar una descomposición de series de tiempo más intuitiva y más fácil de explicar, tal vez incluso algo basado en un Modelo Estructural Básico , uno con estacionalidad, pero eso no necesariamente implica un modelo que funcione mejor que el que usted tiene. Todavía vale la pena probar una o más de las técnicas de descomposición estándar: hay mucho que decir sobre un modelo que comprenda bien.
fuente
Creo que nuestro problema es que estamos saltando directamente al modelo ARIMA sin probar los modelos tradicionales. Por esta razón, puede encontrar que el modelo no está dando los resultados necesarios. En su caso, probé sus datos, descubrí que hay una estacionalidad cada 12 meses que es clara para usted, pero también descubrí que un promedio móvil simple de 3 términos Ajuste estacional: Multiplicativo es el mejor modelo. En mi opinión, tenemos que probar los algoritmos de pronóstico tradicionales antes de saltar a cualquier técnica avanzada.
fuente