Solved – auto.arima vs corARMA: AR coefficient greater than 1

Using R and the nlme package, I tried to fit a gls model with a corARMA correlation structure, but ran into memory issues. As described in this post, I thought I would first fit an lm model, estimate the correlation structure of the residuals using auto.arima, and use the coefficients estimated by auto.arima in the corARMA function, in the hope that this would require less memory.

Here are the auto.arima results:

Series: res3  ARIMA(4,0,1) with zero mean   Coefficients:         ar1      ar2     ar3      ar4      ma1       1.3134  -0.3002  0.0089  -0.0442  -0.7908 s.e.  0.0274   0.0187  0.0131   0.0114   0.0260  sigma^2 estimated as 0.01523:  log likelihood=10807.6 AIC=-21603.2   AICc=-21603.19   BIC=-21557.09 

So, in the gls call, I used:

correlation = corARMA(value = c(1.3134, -0.3002, 0.0089, -0.0442, -0.7908)                       ,form = ~date, p = 4, q = 1, fixed = TRUE) 

But I get the following error:

Error in corARMA(value = c(1.3134, -0.3002, 0.0089, -0.0442, -0.7908),  :  parameters in ARMA structure must be < 1 in absolute value 

So why is it that parameters in the corARMA call must be $< 1$ in absolute value whereas auto.arima can return parameters $> 1$?
What would be the best way to estimate the correlation structure before fitting the gls model?

I used the same strategy and I had exactly the same issue. It seems that parameters > 1 are possible for explosive time series. For the parameter that should be > 1 from your auto.arima results, try to set it to 0.99 in your GLS model without using the argument fixed = TRUE. The model will use the value that you provide as starting value and should finally adjust it to a value similar to your results from auto.arima.

It worked for me so I hope it will also work for you.

Similar Posts:

Rate this post

Leave a Comment