# Parsimony vs AICc in ARIMA modelling

I'm trying to model daily financial data using an ARIMA model in R. After calculating returns, I used the auto.arima function and it chose an ARIMA(1,0,0) model as the most suitable. However, after I fitted more models, I found that an ARIMA(3,0,3) model has a lower AICc than ARIMA (1,0,0).

Which model should I choose? Should I take the one with the least number of parameters (AR(1)), or the one with the lowest information criteria?
Also, as a smaller aside, what criteria does the auto.arima function use in identifying the most suitable model?

• There might be several packages with a function called auto.arima. Do you mean the one in the package forecast? If so, can you read this and then indicate what you need to know that's not covered there? Commented Nov 8, 2015 at 11:02
• +1 to Glen's comment. In addition: In general it is not unusual that two criteria (eg. AIC and BIC) will provide different optimal models. The function forecast::auto.arima uses AICc so maybe you want to cross-check your calculations once more and/or set approximation=FALSE in your auto.arima call. Can you give additional information of what you have done so far? Commented Nov 8, 2015 at 11:18
• The title does not exactly reflect the problem here, IMHO. What to do if I find a model with lower AICc than the model suggested by auto.arima? is too long but perhaps conveys the idea better. Commented Nov 8, 2015 at 11:40

Hyndman & Khandakar (2007), p. 10-11, and Hyndman & Athanasopoulos (2014) chapter 8.7 both describe how auto.arima works. It searches for the best model in the following way (roughly):

1. it determines the integration order $d$ (and seasonal integration order $D$, if applicable) by unit-root or stationarity testing
2. it takes four models as starting points; for non-seasonal time series they will be ARIMA(2,$d$,2), ARIMA(0,$d$,0), ARIMA(1,$d$,0) and ARIMA(0,$d$,1); it selects the one with the lowest information criterion value (information criterion is specified via the argument ic to be AICc, AIC or BIC; the default is AICc)
3. it then proceeds in a stepwise fashion by increasing or decreasing the autoregressive and the moving average orders $p$ and $q$ (for seasonal series, also the seasonal autoregressive and moving average orders $P$ and $Q$) separately or together by 1 searching for a "nearby" (in terms of $p$, $q$, $P$, $Q$) model with the lowest value of the information criterion; it also varies the inclusion/exclusion of the constant $c$ if $d=0$
4. Step 3 is iterated until a new iteration gives the same outcome as the previous iteration; this outcome is then selected as the final model and becomes is the output of auto.arima.

What could have happened in your case is:

• Step 1: $d$ found to be 0, $D$ not applicable
• Step 2: ARIMA(2,0,2) not found to have the lowest information criterion value among ARIMA(2,0,2), ARIMA(0,0,0), ARIMA(1,0,0) and ARIMA(0,0,1)
• Steps 3 and 4 yield ARIMA(1,0,0).

Interestingly, if ARIMA(3,0,3) had been reached at some point in the process, it would have beaten ARIMA(1,0,0), and ARIMA(1,0,0) would not have been selected. However, apparently the search process did not come close enough to ARIMA(3,0,3) to assess it.

By construction, the procedure allows for the case that you are facing. This is a side effect of saving computational time by not exploring a larger candidate model space. Therefore, if you have spent the time to find a better model (in terms of the selected information criterion), logically you should select that model.