J'ai utilisé auto.arima pour ajuster un modèle de série chronologique (une régression linéaire avec des erreurs ARIMA, comme décrit sur le site de Rob Hyndman ). Une fois terminé - le résultat indique que le meilleur modèle a un (5,1,0) avec une structure de dérive - et rapporte les valeurs des critères d'information comme
AIC: 2989,2 AICC: 2989,3 BIC: 3261,2
Lorsque j'utilise Arima pour adapter un modèle avec un (1,1,1) avec une structure de dérive - la sortie rapporte des IC sensiblement inférieurs de
AIC: 2510,3 AICC: 2510,4 BIC: 2759
Je peux forcer auto.arima à considérer le (1,1,1) avec le modèle de dérive (en utilisant les paramètres start.p et start.q), et quand je le fais, et définir "trace = TRUE" - je vois cela le modèle (1,1,1) avec dérive est considéré, mais rejeté, par auto.arima. Il rapporte toujours le (5,1,0) avec le modèle de dérive comme le meilleur résultat.
Y a-t-il des circonstances où auto.arima utilise d'autres critères pour choisir entre les modèles?
Modifié pour ajouter (en réponse à la demande)
Les données de cet exemple se trouvent dans cette feuille de calcul Google
et le code R pour reproduire l'exemple est
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)
Toutes mes excuses si les données Google docs - le code en ligne n'est pas le meilleur moyen de fournir l'exemple. Je pense avoir vu dans le passé des lignes directrices sur la meilleure façon de le faire - mais je n'ai pas pu localiser ces lignes directrices lors de la recherche ce matin.
Réponses:
auto.arima
utilise quelques approximations afin d'accélérer le traitement. Le modèle final est ajusté à l'aide de MLE complet, mais en cours de route, les modèles sont estimés à l'aide de CSS, sauf si vous utilisez l'argumentapproximation=FALSE
. Ceci est expliqué dans le fichier d'aide:Le paramètre par défaut est
approximation=(length(x)>100 | frequency(x)>12)
, là encore, il est spécifié dans le fichier d'aide. Comme vous avez 17544 observations, le paramètre par défaut donneapproximation=TRUE
.En utilisant les approximations, le meilleur modèle trouvé était une régression avec des erreurs ARIMA (5,1,0) avec AICc de 2989,33. Si vous désactivez les approximations, le meilleur modèle présente des erreurs ARIMA (2,1,1) avec un AICc de 2361,40.
la source