Why would Augmented Dickey-Fuller Test fail to reject in this case? (Which implies a unit root exists and non-stationary series) when

Box-Ljung also fails to reject, which implies white noise? and,

KPSS test fails to reject, which implies stationary.



enter image description here

After a seasonal and non-seasonal difference :

diff( diff ( data, lag = 4) )

enter image description here

Adf test won't reject null => unit root exists & non-stationary :

adf.test(diff(diff(data), lag=4))

    Augmented Dickey-Fuller Test

data:  diff(diff(data), lag = 4)
Dickey-Fuller = -3.174, Lag order = 3, p-value = 0.1234
alternative hypothesis: stationary

Box test shows white noise though :

Box.test(diff(diff(data), lag=4),type='Ljung',lag=min(T, h))

    Box-Ljung test

data:  diff(diff(data), lag = 4)
X-squared = 6.4625, df = 6.6, p-value = 0.4416

KPSS test doesn't reject showing stationary

kpss.test(diff(diff(data, lag=4)))

    KPSS Test for Level Stationarity

data:  diff(diff(data, lag = 4))
KPSS Level = 0.080543, Truncation lag parameter = 2, p-value = 0.1

acf plot shows no significant autocorrellation

enter image description here

So why does Dickey-Fuller fail to reject?


2 Answers 2


A useful model for these 33 observations is here enter image description here suggesting two time trends and 1 level/step shift along with a (1,0,0) arima structure. The model is here enter image description here

With Actual/Fit and Forecast here enter image description here and

Model residuals here enter image description here and acf here suggesting model sufficiency enter image description here.

The data is clearly non-stationary AND the remedy is NOT DIFFERENCING but detrending and incorporating a level shift (intercept change) . Both deterministic time trends and level/step shifts are the CAUSE of the non-stationarity.

Following is a presentation of the empirically identified " 3 causal series" ... ... two trends and 1 level/step shift enter image description here , showing 33 periods of history and forecasts .

enter image description here

As others have reflected .. know thy assumptions and precisely what the null hypothesis and what the alternative hypothesis is for each test used.

  • $\begingroup$ Thanks Irish. You made the series stationary by de-trending and a level shift, but why would ADF fail to reject if the series is trend-stationary? Shouldn't it reject if there is no unit root i.e. trend-stationary? Is the level shift to blame? I suspect if it is a level shift, maybe it makes the series look like a non-linear trend, and maybe adf is sensitive to non-linear trends? Please correct if I'm wrong! $\endgroup$
    – Frank
    Commented Jan 29, 2020 at 4:35
  • $\begingroup$ I am not expert enough in the ADF test to answer this hypothetical . I suggest that you direct this question to www4.stat.ncsu.edu/~dickey and cite your data and cite my analysis. $\endgroup$
    – IrishStat
    Commented Jan 29, 2020 at 6:20

From looking at a graph of your time series, there is a clear upward trend present in the data, which suggests non-stationarity.

I decided to run some tests on the data you provided (Dickey-Fuller, Phillips-Perron, and KPSS), where the time series variable is given the name ts. Here are the results:

> library(lmtest)
> library(tseries)
> library(orcutt)
> #install.packages("egcm")
> library(egcm)
> #ADF Tests
> adf.test(ts)

    Augmented Dickey-Fuller Test

data:  ts
Dickey-Fuller = -0.4225, Lag order = 3, p-value = 0.9793
alternative hypothesis: stationary

> #Phillips-Perron Test
> pp.test(ts)

    Phillips-Perron Unit Root Test

data:  ts
Dickey-Fuller Z(alpha) = -7.3396, Truncation lag parameter = 3, p-value = 0.6608
alternative hypothesis: stationary

> #KPSS Tests
> k1<-kpss.test(ts,null="Trend")
> k1

    KPSS Test for Trend Stationarity

data:  ts
KPSS Trend = 0.17321, Truncation lag parameter = 3, p-value = 0.02733

> k1$statistic
KPSS Trend 
> k1$method
[1] "KPSS Test for Trend Stationarity"

We can see that the null hypothesis for the Dickey-Fuller and Phillips-Perron tests cannot be rejected at the 5% level - implying non-stationarity as we expect.

However, in my case, the KPSS showed a p-value below 0.05, which means we reject the null hypothesis of stationarity - consistent with the results from the other two tests.

I note that you specified a lag of 4 time periods - you mention this is to account for non-seasonality. However, as this other answer explains, ADF and KPSS are designed for detecting nonstationarity from the presence of a unit root. However, these tests are not designed to detect other forms of nonstationarity, which includes seasonal nonstationarity.

In this regard, the tests conducted have indicated nonstationarity - which is evidenced by the fact that a clear trend is present in the data. In further modelling the data, you may wish to consider how stable the seasonal pattern is. If there are significant differences from one season to another, this can contribute to non-stationarity, while stable seasonal patterns represent more of a stationary pattern.

It might be an idea to decompose a portion of your time series, e.g. 1 year, to examine the seasonal patterns in more detail. It might be the case that the data is more representative of stationarity when analyzed over a shorter period of time.

  • $\begingroup$ Thank you for your answer. I test ADF, it cannot be rejected, then, I difference seasonally and non-seasonally according to nsdiffs and ndiffs, and test ADF again. After these differences, ADF still shows a unit root, however, KPSS shows stationary, Box shows white noise series. and ACF shows no auto correlation. My question is referencing results after differencing has been performed. if BOX shows white noise, why would ADF still show non-stationary? $\endgroup$
    – Frank
    Commented Jan 27, 2020 at 18:09
  • $\begingroup$ Ljung-Box is used to test for serial correlation across lags, it is not a test for stationarity: stats.stackexchange.com/questions/222765/… $\endgroup$ Commented Jan 27, 2020 at 18:12
  • $\begingroup$ I said it implies white noise, not that it is stationary. Am I wrong that no serial correlation accross lags implies white noise? Also, maybe I am wrong, but, isn't white noise always stationary? $\endgroup$
    – Frank
    Commented Jan 27, 2020 at 18:13
  • $\begingroup$ White noise is a strictly stationary process, but that is not to say it is a wide-sense stationary process. You might find the following to be of clarification: stats.stackexchange.com/questions/335920/… $\endgroup$ Commented Jan 27, 2020 at 18:17
  • $\begingroup$ "no serial correlation accross lags implies white noise?" requires among other things that " no latent deterministic structure is present" . $\endgroup$
    – IrishStat
    Commented Jan 29, 2020 at 0:15

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.