Xema
Xema

Reputation: 1886

Understanding auto.arima resulting in (0,0,0) order

I have the following time series for which I want to fit an ARIMA process: enter image description here

The time series is stationary as the null hypothesis is rejected:

> adf.test(g_train)

    Augmented Dickey-Fuller Test

data:  g_train
Dickey-Fuller = -5.5232, Lag order = 17, p-value = 0.01
alternative hypothesis: stationary

When I train an ARIMA process with auto.arima, I have the following results:

> auto.arima(g_train)
Series: g_train 
ARIMA(0,0,0) with non-zero mean 

Coefficients:
          mean
      142.6338
s.e.    0.4700

sigma^2 estimated as 1273:  log likelihood=-28761.11
AIC=57526.22   AICc=57526.23   BIC=57539.54

Why does it estimate the order to be (0,0,0)? How to interpret the results?

EDIT: it is getting weirder. It seems that auto.arima is given too many data and therefore is unable to compute a suitable model.

I have a total of 5760 values and the auto.arima is working if I pass it only a part of the array. There seems not to be any maximum length for the data.

auto.arima(g_train[1000:length(g_train)])
Series: g_train[1000:length(g_train)] 
ARIMA(4,1,3) 

Coefficients:
         ar1      ar2     ar3     ar4      ma1     ma2      ma3
      2.5736  -1.9617  0.1803  0.2073  -1.4577  1.0505  -0.2284
s.e.  0.0437   0.1133  0.0985  0.0290   0.0437  0.0561   0.0371

sigma^2 estimated as 7.925e-05:  log likelihood=16008.3
AIC=-32000.6   AICc=-32000.57   BIC=-31948.86

EDIT2: Here the Acf plot of my data. We can clearly see a seasonal trend. Maybe the problem is coming from there?

enter image description here

Upvotes: 0

Views: 10279

Answers (2)

Monica Paiva Quast
Monica Paiva Quast

Reputation: 11

Probably I´m a little bit late, but I see 2 points that might be affecting this result.

  1. Does the ts object contain the right frequency? Try auto.arima(ts(as.numeric(AirPassengers), frequency = 4)) (wrong frequency) and auto.arima(AirPassengers) (right frequency) to see what I mean.
  2. auto.arima goes up to a maximum order of (5, 2, 5)(2, 1, 2). Check the arguments starting with max to try different numbers.

Upvotes: 1

Daniel James
Daniel James

Reputation: 1433

Use auto.arima and specify if the series has a mean=0 or not

library(forecast)
auto.arima(x, allowmean=FALSE, allowdrift=FALSE, trace=TRUE)

x in this case is your time series data

Upvotes: 1

Related Questions