Usei o auto.arima para ajustar um modelo de série temporal (uma regressão linear com erros ARIMA, conforme descrito no site de Rob Hyndman ). e reporta valores de critérios de informação como
AIC: 2989.2 AICC: 2989.3 BIC: 3261.2
Quando eu uso o Arima para ajustar um modelo com uma estrutura (1,1,1) com deriva - a saída reporta ICs visivelmente mais baixos de
AIC: 2510.3 AICC: 2510.4 BIC: 2759
Posso forçar o auto.arima a considerar o modelo (1,1,1) com desvio (usando os parâmetros start.p e start.q) e, quando faço isso, e definir "trace = TRUE" - vejo que o modelo (1,1,1) com desvio é considerado, mas rejeitado, pelo auto.arima. Ele ainda reporta o modelo (5,1,0) com desvio como o melhor resultado.
Existem circunstâncias em que o auto.arima usa outros critérios para escolher entre modelos?
Editado para adicionar (em resposta à solicitação)
Os dados deste exemplo podem ser encontrados nesta planilha do Google
e código R para reproduzir o exemplo é
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)
Desculpas se o Google documenta dados - código embutido não é a melhor maneira de fornecer o exemplo. Eu acho que vi no passado diretrizes sobre a melhor maneira de fazer isso - mas não consegui localizar essas diretrizes na pesquisa desta manhã.
Respostas:
auto.arima
usa algumas aproximações para acelerar o processamento. O modelo final é ajustado usando o MLE completo, mas ao longo do caminho os modelos são estimados usando CSS, a menos que você use o argumentoapproximation=FALSE
. Isso é explicado no arquivo de ajuda:A configuração padrão é
approximation=(length(x)>100 | frequency(x)>12)
novamente especificada no arquivo de ajuda. Como você tem 17544 observações, a configuração padrão forneceapproximation=TRUE
.Usando as aproximações, o melhor modelo encontrado foi uma regressão com erros ARIMA (5,1,0) com AICc de 2989,33. Se você desativar as aproximações, o melhor modelo apresentará erros ARIMA (2,1,1) com um AICc de 2361,40.
fonte