# 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?

• The ARMA process needs to be stationary. It can't be stationary with an AR term greater than one. My advice: plot, plot, plot. – Jim Apr 30 '18 at 10:11
• Post your data. – Tom Reilly May 4 '18 at 18:00

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.