I am modelling a series of growth rate in unemployment in the United States with an ARIMA model using auto_arima from pmdarima. This is what the data looks like: enter image description here

Before fitting the model I ran an ADF test and I was able to reject the null of non-stationarity. In order to find the optimal autoregressive and moving average parameters, I used auto_arima and the selected model was ARIMA (5,0,4).

However, here is the output of the model fit:

                 coef    std err          z      P>|z|      [0.025      0.975]
ar.L1          1.6614      0.041     40.105      0.000       1.580       1.743
ar.L2         -0.6829      0.074     -9.238      0.000      -0.828      -0.538
ar.L3          0.5717      0.072      7.979      0.000       0.431       0.712
ar.L4         -1.1751      0.069    -17.120      0.000      -1.310      -1.041
ar.L5          0.5859      0.041     14.427      0.000       0.506       0.665
ma.L1         -0.6875      0.027    -25.210      0.000      -0.741      -0.634
ma.L2          0.1827      0.023      7.794      0.000       0.137       0.229
ma.L3         -0.7397      0.023    -31.507      0.000      -0.786      -0.694
ma.L4          0.8748      0.026     33.983      0.000       0.824       0.925
sigma2        22.2571      0.882     25.249      0.000      20.529      23.985
Ljung-Box (L1) (Q):                   0.11   Jarque-Bera (JB):               215.10
Prob(Q):                              0.74   Prob(JB):                         0.00
Heteroskedasticity (H):               0.29   Skew:                             0.37
Prob(H) (two-sided):                  0.00   Kurtosis:                         5.79

As you can see, some of the lags' coefficients are bigger than one, which contradicts stationarity. How is this possible? What could be the reason why I am getting such coefficients? Besides, since the Ljung-Box test does not reject the null hypothesis of white noise residuals, is the model fit still good, or have I run into some modelling error?


1 Answer 1


The condition for an ARMA model to be stationary is not that the AR coefficients are all below unity. Instead, it is that the roots of the characteristic polynomial of the AR part are outside the unit circle, or in other words, their moduli are above unity. See e.g. this lecture note from University of Minnesota, specifically slide 64 but also the slides before it. Or see any time series textbook, as stationarity of ARMA models is commonly covered there.

In your case, one needs to solve the equation $$ 1-1.6614z+0.6829z^2-0.5717z^3+1.1751z^4-0.5859z^5=0 $$ and figure out if any of the roots has a modulus equal to or lower than unity. In that case, your series would be nonstationary. The forecast package in R has the functionality to find the roots of the characteristic polynomial, and explicit code for that is available here; perhaps there is something similar in Python, too. What I get after some fiddling with the code above is the following:

enter image description here

Four out of five roots are visible in the range that the plot covers. No roots can be found inside or on the unit circle, so it seems we do not have an indication that your process is nonstationary.

  • $\begingroup$ Thank you for the very clear and detailed answer! $\endgroup$ Nov 17, 2021 at 10:06
  • $\begingroup$ @T.Armstrong, you are welcome! $\endgroup$ Nov 17, 2021 at 10:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.