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?

**Contents**hide

#### Best Answer

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.