4
$\begingroup$

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?

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

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.

$\endgroup$
0
$\begingroup$

your auto.arima model is probably WAY over-modelled as the sum of the ar coefficients is approximately 1. suggesting non-invertibility perhaps due to the near cancellation as a result of the ma(1) coefficent . GLS appears to be slightly smarter as it CORRECTLY flagged the model . Post your data and I will give you more definitive corrections.

Your data could easily be random or driven by deterministic components like level shifts , seasonal pulses , local time trends AND of course possible anomalies.

ARIMA model building follows the following paradigm (ITERATIVE MODEL IDENTIFICATION) https://autobox.com/pdfs/ARIMA%20FLOW%20CHART.pdf

$\endgroup$
  • $\begingroup$ If you are happy with my response please accept it to close the question $\endgroup$ – IrishStat Aug 15 at 8:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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