He usado auto.arima para ajustar un modelo de serie temporal (una regresión lineal con errores ARIMA, como se describe en el sitio de Rob Hyndman ). Cuando termine, el resultado informa que el mejor modelo tiene un (5,1,0) con estructura de deriva. e informa los valores de los criterios de información como
AIC: 2989.2 AICC: 2989.3 BIC: 3261.2
Cuando uso Arima para ajustar un modelo con un (1,1,1) con estructura de deriva, la salida informa de un IC notablemente más bajo de
AIC: 2510.3 AICC: 2510.4 BIC: 2759
Puedo forzar a auto.arima a considerar el (1,1,1) con el modelo de deriva (usando los parámetros start.p y start.q), y cuando hago eso, y establezco "trace = TRUE" - veo que el (1,1,1) con modelo de deriva es considerado, pero rechazado, por auto.arima. Todavía informa el (5,1,0) con el modelo de deriva como el mejor resultado.
¿Hay circunstancias en las que auto.arima utiliza otros criterios para elegir entre modelos?
Editado para agregar (en respuesta a la solicitud)
Los datos para este ejemplo se pueden encontrar en esta hoja de cálculo de Google
y el código R para reproducir el ejemplo es
repro = read.csv("mindata.csv")
reprots = ts(repro, start=1, frequency=24)
fitauto = auto.arima(reprots[,"lnwocone"],
xreg=cbind(fourier(reprots[,"lnwocone"], K=11),
reprots[,c("temp","sqt","humidity","windspeed","mist","rain")]),
start.p=1, start.q=1, trace=TRUE, seasonal=FALSE)
fitdirect <- Arima(reprots[,"lnwocone"], order=c(1,1,1), seasonal=c(0,0,0),
xreg=cbind(fourier(reprots[,"lnwocone"], K=11),
reprots[,c("temp","sqt","humidity","windspeed","mist","rain")]), include.drift=TRUE)
summary(fitauto)
summary(fitdirect)
Disculpas si el código en línea de datos de Google Docs no es la mejor manera de dar el ejemplo. Creo que he visto en el pasado pautas sobre la mejor manera de hacer esto, pero no pude encontrar esas pautas al buscar esta mañana.
Respuestas:
auto.arima
utiliza algunas aproximaciones para acelerar el procesamiento. El modelo final se ajusta usando MLE completo, pero en el camino los modelos se estiman usando CSS a menos que use el argumentoapproximation=FALSE
. Esto se explica en el archivo de ayuda:La configuración predeterminada es
approximation=(length(x)>100 | frequency(x)>12)
, nuevamente esto se especifica en el archivo de ayuda. Como tiene 17544 observaciones, la configuración predeterminada daapproximation=TRUE
.Usando las aproximaciones, el mejor modelo encontrado fue una regresión con errores ARIMA (5,1,0) con AICc de 2989.33. Si desactiva las aproximaciones, el mejor modelo tiene errores ARIMA (2,1,1) con un AICc de 2361.40.
fuente