Can anyone please clarify for me the differences between ADF (Augmented Dickey-Fuller) and KPSS (Kwiatkowski–Phillips–Schmidt–Shin) tests in testing the stationarity of a time series?

I tested my time series with both of them and they gave me contradictory results.

An interpretation of each test definition would be so helpful for me.

Here's the plot of my time series: enter image description here

The tests in R (I'm using tseries library) gave me these results:

for ADF test:

     data:  timeserie
     Dickey-Fuller = -5.3593, Lag order = 8, p-value = 0.01
     alternative hypothesis: stationary

for KPSS test:

     data:  timeserie
     KPSS Level = 0.70958, Truncation lag parameter = 6, p-value = 0.01267

How can I conclude If my time series is stationary or not ?

  • $\begingroup$ You may also find some related discussions and excellent answers in earlier posts on Cross Validated if you search for the relevant keywords. $\endgroup$ – Richard Hardy Dec 29 '15 at 9:24
  • $\begingroup$ Your data looks as if there would be some missing data in the middle of the time series. $\endgroup$ – Ferdi Nov 22 '17 at 15:08

what I know is ADF and KPSS are used for the same thing, is the time series is stationary or non-stationary but they have opposite null hypothesis statement. in the case of ADF null hypothesis is the time series is non-stationary and in KPSS the null hypothesis is that the time series is stationary. but sometimes it may happen that they give different result in that situation it's best to see some other perspective of the given time series. hope this clears your doubt

| cite | improve this answer | |
  • $\begingroup$ Thank you @john for your answer. How can I see some other perspective of my time series? I didn't get it. $\endgroup$ – Sarah Dec 29 '15 at 8:06
  • $\begingroup$ like if its financial time series surely it's going to be non-stationary, you can also apply ndiffs function in r to see how many differences you have to take to make it stationary. $\endgroup$ – john Dec 29 '15 at 8:14
  • $\begingroup$ The ndiffs(timeserie) function gave me this result : [1] 1 $\endgroup$ – Sarah Dec 29 '15 at 8:23
  • $\begingroup$ that means your time series is non-stationary and if you take consecutive difference of data point it becomes stationary. $\endgroup$ – john Dec 29 '15 at 8:25
  • $\begingroup$ Ok thank you @john . I'm trying to do the time series differencing with r. How can I configure the parameters of my new time serie in function ts from the library tseries? $\endgroup$ – Sarah Dec 29 '15 at 8:35

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.