I have following data:

dat <- c(8.28, 8.47, 8.59, 8.48,8.50,8.06,8.31,8.09,8.26,7.93,7.77,7.57,7.53,7.75,8.39,8.50,8.61,8.79,8.78,8.80)
dat.TS <- ts(dat, start=1995, end=2014)

enter image description here

The adf.test() keeps suggesting that the data are non-stationary (p-value > 0.05), even if I take the logarithm and first or second differences. How is this possible and what is the reason for this?


2 Answers 2


the data are non-stationary ... even if I take the logarithm and first or second differences. How is this possible and what is the reason for this?

While differencing may often make series near to stationary, the set of series that are rendered stationary by differencing are a tiny subset of the set of all series one might observe.

Here, for example are fifth differences of a series that are still clearly not stationary:

enter image description here

(In this case the reason is obvious enough, but it's easy to construct series that are not periodic when nevertheless would not be rendered stationary to any order of differencing.)

Note that if you have noise about a polynomial trend of order $k$ then it takes differences of order $k$ to remove it (a quadratic trend would require second differences). So if you have a series that looks like it could be regarded as a deterministic trend plus noise that doesn't look quadratic, then second differences may well not leave you with stationarity.

However, the noisier the series the greater the tendency of differencing to reduce the remaining trend to below detectability given the noise. Note that your series shows strong trend relative to the noisiness, so it might not be so surprising that second differences leave you with a series you could still tell from stationary.

  • $\begingroup$ So this means I cannot fit an arima model in this series? $\endgroup$ Commented Jul 5, 2016 at 9:55
  • 1
    $\begingroup$ @user3387899 I don't see that's a necessary conclusion. Second differencing (with or without logs) doesn't make it stationary, but that doesn't imply that there's no reasonable way to make it indistinguishable from stationary, and so one couldn't say "you cannot". (Or to be more precise, clearly you can, since nobody could stop you -- the real question is the extent to which it would be a useful model for whatever particular purpose) $\endgroup$
    – Glen_b
    Commented Jul 5, 2016 at 10:00
  • $\begingroup$ user3387899 - do you see that I used ARIMA in my answer? $\endgroup$
    – Tom Reilly
    Commented Aug 8, 2016 at 16:45
  • $\begingroup$ @user3387899 note that a model that includes three outliers in such a short series may make it very difficult to forecast well, because it implies that outliers are so frequent as to require one to model and forecast the "outlier"-process as well. This could be done in a Bayesian (MCMC) framework without too much trouble. For example, see Barnett, G., Kohn, R. and Sheather, S. (1996), "Bayesian estimation of an autoregressive model using Markov chain Monte Carlo", Journal of Econometrics, vol. 74, issue 2, 237-254 and ... $\endgroup$
    – Glen_b
    Commented Sep 29, 2017 at 23:23
  • $\begingroup$ also an example (with two kinds of outliers) in Barnett, G., Kohn, R., Sheather, S., and Wong, J. (1995), "Markov chain Monte Carlo estimation of autoregressive models with application to metal pollutant concentration in sludge", Mathematical and Computer Modelling, Volume 22, Issues 10–12, November–December, 7-13 $\endgroup$
    – Glen_b
    Commented Sep 29, 2017 at 23:24

It doesn't need logs. This data is well modeled with differences, an AR1 and 3 outliers.

[(1-B1)]Y(T) = +[X1(T)][(1-B1)][(- .383)] :PULSE 1999 +[X2(T)][(1-B1)][(+ .248)] :PULSE 2008 +[X3(T)][(1-B1)][(+ .259)] :PULSE 2002 + [(1- .673B** 1)]**-1 [A(T)] [enter image description here]1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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