Skip to main content
replaced http://stats.stackexchange.com/ with https://stats.stackexchange.com/
Source Link

This postpost raises essentially the same issue.

This post raises essentially the same issue.

This post raises essentially the same issue.

Removed paragraph mentioning the author of the package as possible source for details, the reference given in one comment contains the details.
Source Link
javlacalle
  • 11.8k
  • 30
  • 56

Maybe the author of the forecast package @Rob Hyndman can confirm whether the above description is a correct sketch of the model selection procedure in auto.arima.

Now, looking at the output of your fitted model. The moving average of the model that is shown in your output does not contain seasonal cycles.

Maybe the author of the forecast package @Rob Hyndman can confirm whether the above description is a correct sketch of the model selection procedure in auto.arima.

Now, looking at the output of your fitted model. The moving average of the model that is shown in your output does not contain seasonal cycles.

Now, looking at the output of your fitted model. The moving average of the model that is shown in your output does not contain seasonal cycles.

Source Link
javlacalle
  • 11.8k
  • 30
  • 56

This post raises essentially the same issue.

auto.arima selects a model by comparison of the AIC, AICc or BIC across different tentative models. The model with the minimum value for the selected criterion is chosen. By default, with monthly series auto.arima considers the possibility of seasonal terms in the ARIMA model. In this case, it turns out that the chosen model contains a moving-average (MA) of seasonal order.

The Canova-Hansen (1995) test for the null hypothesis of deterministic seasonality and the Osborn-Chui-Smith-Birchenhall (1988) test for the null that a seasonal unit root exists can be selected in auto.arima (by default the latter is applied). No seasonal seasonal differencing filter is chosen in the model chosen in your example. Thus, basically no major seasonal pattern has been detected.

Maybe the author of the forecast package @Rob Hyndman can confirm whether the above description is a correct sketch of the model selection procedure in auto.arima.

Now, looking at the output of your fitted model. The moving average of the model that is shown in your output does not contain seasonal cycles.

These are, by definition, the seasonal frequencies in a monthly series:

round(Arg(c(0.5*(sqrt(3) + 1i), 0.5*(sqrt(3) - 1i), 
0.5*(1 + sqrt(3)*1i), 0.5*(1 - sqrt(3)*1i), 1i, -1i, 
-0.5*(1 + sqrt(1i)*1i), -0.5*(1 - sqrt(1i)*1i),
-0.5*(sqrt(3) + 1i), -0.5*(sqrt(3) - 1i), -1)), 6)
# [1]  0.523599 -0.523599  1.047198 -1.047198  1.570796 -1.570796 -1.963495
# [8]  2.748894 -2.617994  2.617994  3.141593

And these are the frequencies of the cycles that are generated by the moving average of the chosen model:

require("polynom")
pma <- polynomial(c(1,-0.7888)) * polynomial(c(1,rep(0,11),-0.157,rep(0,11), 0.0918))
round(Arg(polyroot(pma)), 6)
#  [1]  0.938138  2.508934 -2.203455 -0.414539  1.156257  2.727054 -1.985335
#  [8]  0.109060  1.461737 -2.508934 -1.461737  0.414539  1.679856 -2.727054
# [15] -1.156257  0.632659  1.985335 -3.032533 -0.938138 -0.109060  2.203455
# [22] -1.679856 -0.632659  0.000000  3.032533

The are two cycles of frequencies close to those of the seasonal cycles but we can say that the moving average of the selected model does not generate cycles at the seasonal frequencies. This is in agreement with the fact that the data were previously seasonally adjusted.

Interestingly, if we omitted the second seasonal moving average (which is not significant) then we would end up with a model that contains seasonal cycles (frequencies 1.047198 and 3.141593):

pma2 <- polynomial(c(1,-0.7888)) * polynomial(c(1,rep(0,11),-0.157))
round(Arg(polyroot(pma2)), 6)
# [1]  1.047198  2.617994 -2.094395 -0.523599  1.570796  3.141593 -1.570796
# [8]  0.000000  2.094395 -2.617994 -1.047198  0.523599  0.000000

This explains the role of the second MA parameter. It is not explicitly intentional that the searching procedure adds this parameter in order to get a model without seasonal cycles, but it is nice to see how the rule of minimum AIC (or AICc, BIC) yields a model that agrees with the somewhat more elaborated reasoning that we made knowing the nature of the data.

When working with seasonally adjusted data it is judicious to do some general checks (e.g. look at the autocorrelation or the periodogram) to confirm the lack of seasonal cycles, but I would say that you could safely stick to non-seasonal ARIMA models (to do so you can set in the function auto.arima the argument seasonal=FALSE).