I have an auto.arima model output with ARIMA(0,0,0) with zero mean does this indicate that the model did not fit well? Is it the case that the extra regressors have eclipsed the effect of the time and difference components? If it is valid, I do not know how to interpret the results to communicate to others why the zeroes are okay.

Series: y 
ARIMA(0,0,0) with zero mean     

      dowSunday  dowMonday  dowTuesday  dowWednesday  dowThursday  dowFriday  dowSaturday  daypartM  daypartA
         0.1427     0.1425      0.0912        0.0312       0.0136     0.1195       0.0841    0.1051    0.1275
s.e.     0.1399     0.2124      0.2120        0.1528       0.2013     0.2357       0.2375    0.1285    0.0451
      daypartE  daypartLN  inv_last24  regionSouth  regionNorth Central
        0.1697     0.0334      0.0240      -0.0234               -0.100
s.e.    0.0968     0.0736      0.1085       0.0464                0.049

sigma^2 estimated as 0.007612:  log likelihood=31.9
AIC=-33.8   AICc=206.2   BIC=-20.44

Training set error measures:
                        ME       RMSE        MAE  MPE MAPE      MASE      ACF1
Training set -6.321953e-17 0.04112732 0.03184536 -Inf  Inf 0.3702166 0.2447627

An ARIMA(0,0,0) model with zero mean is white noise, so it means that the errors are uncorrelated across time.

This doesn't imply anything about the size of the errors, so no in general it is not an indication of good or bad fit.

In your case, you'll note that your $\sigma^2$ is 0.007612 and that ME is -6.321953e-17. These are very very small numbers, so yes, the model "fits" well.

However, the reason why they are very small is because you are fitting 15 parameters (14 coefficients + 1 error variance) to only 18 points.

You are likely overfitting the data to an extreme degree, and you will likely not be able to forecast out of sample very well.

  • 4
    $\begingroup$ Anytime you see a number on the order of e-15 or smaller, alarm bells should go off because that's machine epsilon for double precision floating point. (Machine epsilon is the smallest positive number that when added to 1, is different from 1. It captures the notion of rounding error.) Numbers that small might mechanically be zero, and they're not exactly zero because of floating point rounding error. $\endgroup$ Sep 23 '16 at 15:33
  • $\begingroup$ Thank you. I'm reading up on over-fitting with time-series. Is the consensus to cross-validate by removing part of the sample? My current samples are fairly small already. Perhaps this type of analysis is just not possible with my data? $\endgroup$
    – Pierre L
    Sep 23 '16 at 15:48
  • 3
    $\begingroup$ @PierreLafortune FYI, forecasting the stock market in the short-run with simple time series tools is almost certainly not going to work well. If it did, any Joe Schmo who could run a regression would get rich in the stock market. Does it make any sense at all that average returns would be different on different days of the week? If they were different, wouldn't that be incredibly simple for hedge funds or traders to exploit? What forecastability in the stock market you do see tends to be either: (1) extremely small (2) difficult to exploit or (3) requires special information. $\endgroup$ Sep 23 '16 at 17:04

Your model fit, well. ARIMA(0,0,0) can often appear in time series.

An Autoregressive

Let us have a look at how an ARMA(p,q) (Autoregressive-Moving-Average) modell is structured.

$x_t = c + \epsilon_t + \sum\limits_{i}^p * \phi_i *x_t-_1 + \sum\limits_{i}^q\epsilon_t-_1 $

An ARMA(p,0) modell is the same as an AR(q) modell (Autoregressive modell of order p). It can be represented using the following representation.

$x_t = c + \epsilon_t + \sum\limits_{i}^p * \phi_i *x_t-_1 + \epsilon_t $

An ARMA(0,q) modell is the same as an MA(q) modell (Moving-Average modell of order q). It can be represented using the following representation.

$x_t = \mu + \epsilon_t + \sum\limits_{i}^q\epsilon_t-_1 $

Hence an ARMA(0,0) modell is the same as an AR(0) (Autoregressive model of order 0) model or an MA(0) Moving average modell of order 0 modell. An ARMA(0,0) modell is shown in the next equtation.

$x_t = c + \epsilon_t$

So the ARMA(0,0) model is made up of two parts:

  1. A Constant
  2. An error term

This means ARMA(0,0), but now have a closer look what ARIMA(0,0,0) means.

The I in ARIMA stands for integration. You have to integrate the time series I before applying the ARMA modell. So in our case you have to integrate it 0 times.

An example for an ARIMA(0,0,0) modell is a time series only containing a constant and white noise, so for example a time series in which all values are the same is ARIMA(0,0,0)

Here is some explanatory code in R:

Generate two processes FirstARIMA is a time series which consists only of a constant. SecondARIMA is a process which consists of a constant and a normally distributed error term (gaussian noise).


ARIMA000 <- rep(10,10)
FirstARIMA <- ts(ARIMA000)
noise <- rnorm(10, mean = 0, sd = 1)
SecondARIMA <- ts(ARIMA000 + noise)


Shows you that the first process is an ARIMA(0,0,0) process.

Series: FirstARIMA 
ARIMA(0,0,0) with non-zero mean 


sigma^2 estimated as 0:  log likelihood=Inf
AIC=-Inf   AICc=-Inf   BIC=-Inf


Shows you that the second process is also an ARIMA(0,0,0) process.

Series: SecondARIMA 
ARIMA(0,0,0) with non-zero mean 

s.e.     0.2434

sigma^2 estimated as 0.6581:  log likelihood=-11.57
AIC=27.14   AICc=28.86   BIC=27.75

I am plotting the two time series.


enter image description here plot.ts(SecondARIMA)

enter image description here

  • 1
    $\begingroup$ Can you please check your formulas? Some TeX problems, I think $\endgroup$ Oct 29 '18 at 17:07

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.