I have been trying to learn and apply ARIMA models. I have been reading an excellent text on ARIMA by Pankratz - Forecasting with Univariate Box - Jenkins Models: Concepts and Cases. In the text the author especially emphasizes the priciple of parsimony in choosing ARIMA models.
I started playing with auto.arima()
function in R package forecast. Here is what I did, I simulated ARIMA and then applied auto.arima()
. Below are 2 examples. As you can see in both example auto.arima()
clearly identified a model that many would consider non-parsimonious. Especially in example 2, where auto.arima()
identified ARIMA(3,0,3) when actually ARIMA(1,0,1) would be sufficient and parsimonious.
Below are my questions. I would appreciate any suggestions and recommendations.
- Are there any guidance on when to use/modify the models identified using automatic algorithms such as
auto.arima()
? - Are there any pit falls in just using AIC (which is what I think
auto.arima()
uses) to identify models? - Can an automatic algorithm built that is parsimonious?
By the way I used auto.arima()
just as an example. This would apply to any automatic algorithm.
Below is Example #1:
set.seed(182)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)
auto.arima(y)
qa <- arima(y,order=c(1,0,1))
qa
Below are the results from auto.arima()
. Please note that all the coefficients are insignificant. i.e., $t$ value < 2.
ARIMA(1,0,2) with non-zero mean
Coefficients:
ar1 ma1 ma2 intercept
0.5395 0.2109 -0.3385 19.9850
s.e. 0.4062 0.4160 0.3049 0.0878
sigma^2 estimated as 1.076: log likelihood=-728.14
AIC=1466.28 AICc=1466.41 BIC=1487.36
Below are the results from running regular arima()
with order ARIMA(1,0,1)
Series: y
ARIMA(1,0,1) with non-zero mean
Coefficients:
ar1 ma1 intercept
0.2398 0.6478 20.0323
s.e. 0.0531 0.0376 0.1002
sigma^2 estimated as 1.071: log likelihood=-727.1
AIC=1462.2 AICc=1462.28 BIC=1479.06
Example 2:
set.seed(453)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)
auto.arima(y)
qa <- arima(y,order=c(1,0,1))
qa
Below are the results from auto.arima()
:
ARIMA(3,0,3) with non-zero mean
Coefficients:
ar1 ar2 ar3 ma1 ma2 ma3 intercept
0.7541 -1.0606 0.2072 0.1391 0.5912 0.5491 20.0326
s.e. 0.0811 0.0666 0.0647 0.0725 0.0598 0.0636 0.0939
sigma^2 estimated as 1.027: log likelihood=-716.84
AIC=1449.67 AICc=1449.97 BIC=1483.39
Below are the results running regular arima()
with order ARIMA(1,0,1)
Series: y
ARIMA(1,0,1) with non-zero mean
Coefficients:
ar1 ma1 intercept
0.2398 0.6478 20.0323
s.e. 0.0531 0.0376 0.1002
sigma^2 estimated as 1.071: log likelihood=-727.1
AIC=1462.2 AICc=1462.28 BIC=1479.06