Solved – Unit root tests ambiguous – is time series stationary

augmented-dickey-fullerkpss-teststationarityunit root

I am testing a time series (quarterly) for stationarity. However, using the KPSS test, the ADF test and PP test, I get different results (ADF and PP reject non-stationarity, KPSS rejects stationarity, all of them at a 95% significance level). I am not sure how to handle this now. Can I just go for stationarity, because two of the tests resulted in stationarity?

My time series looks as follows:

enter image description here

Best Answer

I am not surprised by these results. I got them very often. The KPSS test for some reason is very sensitive, if not overly so, as it rejects the vast majority of variables as stationary. In other words, it diagnoses almost everything as non-stationary. Because of that, I have stopped using the KPSS test for stationary diagnostics. And, I rely on the other tests that seem fairer and more accurate on this issue. The two other tests you use (PP and ADF) generate far more reliable results on this count. Also, visually you can tell that your variable appears pretty stationary.

I am revising my answer from 2017. The KPSS test after all does not reject stationarity as often as I thought it did. If you run the test in R, it almost always gives you a p-value of 0.1 making it a bit difficult to accept the null hypothesis that the variable is stationary. But, underneath the calculation you see a red written warning that states "... p-value is greater than the printed value shown." It means that whether the p-value is 0.11 or 0.99, the test result will show it as 0.1. In other words, the KPSS does not reject that a variable is stationary nearly as often as I thought it did. And, now I pretty much use it again all the time in such circumstance. It is nice to run a stationarity test that runs in the opposite direction of the others as its null is that the variable is stationary instead of non-stationary as in all the other tests.

This does not detract that different tests will give you often contradicting results. I typically run three tests, and if the variable passes 2 out of 3 tests, I deem it as adequate evidence that the variable is stationary.

Last but not least, when I look at your time series graph your variable appears stationary enough so that it should not render any model that you build using it "spurious."