KPSS Test for Stationarity: KPSS vs ADF and EViews Steps

The KPSS test explained: stationarity null, level vs trend, bandwidth choice, KPSS vs ADF decision table, EViews and Stata steps and APA reporting.

The KPSS test is the stationarity test reviewers expect alongside the ADF test in any time-series thesis or article. Proposed by Kwiatkowski, Phillips, Schmidt and Shin (1992), it reverses the usual logic: the KPSS stationarity test assumes the series is stationary and asks whether the data contradict that. Going beyond our unit root tests guide, this post covers the LM statistic, level versus trend, the bandwidth decision, KPSS vs ADF confirmatory analysis, and EViews and Stata steps.

What the KPSS test for stationarity actually tests

KPSS splits a series into a deterministic part (a constant, or a constant plus a linear trend), a random walk and a stationary error. The null hypothesis is that the variance of the random-walk innovations is zero, so the random walk collapses to a constant and the series is level-stationary or trend-stationary. The alternative is a positive variance, i.e. a unit root — the exact reverse of the ADF and Phillips–Perron tests. Non-rejection shows compatibility with stationarity, not proof.

The KPSS unit root test is a Lagrange multiplier (LM) test. Regress the series on a constant (or a constant and trend), keep the residuals et and form their partial sums St = e1 + … + et. The statistic is η = T⁻² ΣSt² / s²(l), where s²(l) estimates the long-run variance of the residuals. Under stationarity the residuals keep crossing zero and the partial sums stay small; under a unit root they drift and the partial sums balloon. Large values count against stationarity, so the test is right-tailed.

Level or trend specification: critical values and decision rule

The level version, ημ, includes a constant only and tests stationarity around a fixed mean; the trend version, ητ, adds a linear trend. Let the plot decide: a clear upward drift (log GDP, prices) calls for the trend version, while fluctuation around a stable mean (inflation, growth rates) calls for the level version. Because a linear trend in levels becomes a constant after differencing, first differences are normally tested with the level version. Each version has its own asymptotic critical values.

Asymptotic KPSS critical values (Kwiatkowski et al., 1992)
Significance levelConstant only (ημ)Constant + trend (ητ)
10%0.3470.119
5%0.4630.146
1%0.7390.216
DecisionReject H₀ if ημ > critical valueReject H₀ if ητ > critical value

The decision rule mirrors the ADF test: reject stationarity when the statistic exceeds the critical value. A level statistic of 0.52 rejects level stationarity at 5% (0.52 > 0.463) but not at 1% (0.52 < 0.739). As the values are asymptotic, word borderline results in short samples cautiously.

Long-run variance and bandwidth: the choice that moves the result

The denominator s²(l) corrects for serial correlation in the residuals. It is estimated non-parametrically with a kernel, most often the Bartlett kernel, which weights the autocovariance at lag s by 1 − s/(l + 1), and the bandwidth l sets how many autocovariances enter. The original paper worked with lag truncation rules such as l = integer[4·(T/100)^(1/4)]; today the Newey–West automatic bandwidth is the usual default.

Why it matters: with positively autocorrelated but stationary data, too small a bandwidth underestimates the long-run variance, inflates η and produces spurious rejections of stationarity. Too large a bandwidth absorbs genuine persistence and saps power against the unit root alternative. Below, one series changes verdict purely because of l, so report the kernel and bandwidth in every results table.

284213142710284l = 0102l = 264l = 449l = 641l = 836l = 10
Level KPSS statistic (×100) for one persistent series at bandwidths 0–10; values above 46.3 reject stationarity at 5% (illustrative values)

KPSS vs ADF: confirmatory analysis

With opposite null hypotheses, the two tests yield four possible outcomes: agreement is strong evidence, while disagreement is diagnostic information.

Confirmatory analysis: combining ADF and KPSS
ADF (H₀: unit root)KPSS (H₀: stationary)ReadingNext step
RejectsDoes not rejectStationary, I(0)Use the series in levels
Does not rejectRejectsUnit rootDifference once and test again
RejectsRejectsConflict: both rejectCheck for structural breaks or fractional integration (long memory)
Does not rejectDoes not rejectConflict: data uninformativeLow power; add data or use a more powerful test such as DF-GLS

Structural breaks are the most frequent culprit: a single level shift in an otherwise stationary series inflates the KPSS statistic and weakens the ADF test at the same time. Fractionally integrated series, I(d) with 0 < d < 1, can also lead both tests to reject. If the conflict persists, report both results, run a break test such as Zivot–Andrews and justify your classification.

How to run the KPSS test in EViews and Stata

  1. Open the series and choose View → Unit Root Test (in recent EViews versions, the standard unit root test entry under the unit root tests menu).
  2. Set Test type to Kwiatkowski-Phillips-Schmidt-Shin.
  3. Under Test for unit root in, choose Level, then repeat with 1st difference.
  4. Under Include in test equation, choose Intercept (ημ) or Trend and intercept (ητ).
  5. Keep the spectral estimation method at the Bartlett kernel with Newey–West automatic bandwidth unless you have a reason to change it; a fixed bandwidth suits robustness checks.
  6. Compare the LM statistic with the asymptotic critical values printed beneath it and note the reported bandwidth.

In Stata, kpss is a user-written command, installed with ssc install kpss. After tsset, kpss lngdp tests trend stationarity (the default) and kpss lngdp, notrend tests level stationarity. The command reports the statistic for a range of lag orders; maxlag() sets the upper lag, auto requests automatic bandwidth selection and qs switches to the quadratic spectral kernel.

Worked example, ARDL implications and APA reporting

Illustrative data: annual log real GDP, T = 40. In levels with trend and intercept, KPSS gives ητ = 0.198 at a Newey–West bandwidth of 4, above the 5% critical value of 0.146, so trend stationarity is rejected; ADF with trend (t = −1.84, p = 0.66) cannot reject a unit root. In first differences with an intercept, ημ = 0.142 < 0.463 while ADF rejects (t = −5.21, p < 0.01). Both tests agree at each stage: the series is I(1).

This classification shapes the next model. The ARDL bounds test tolerates a mix of I(0) and I(1) regressors but breaks down with any I(2) variable, so a KPSS rejection on the first difference must be resolved before estimation. Johansen cointegration requires every variable to be I(1); see our cointegration guide. An APA-style reporting sentence: “The KPSS test rejected trend stationarity of log real GDP in levels, ητ = 0.198 (5% critical value = 0.146; Bartlett kernel, Newey–West bandwidth = 4), but not level stationarity of its first difference, ημ = 0.142 (5% critical value = 0.463); with the ADF results, the series was classified as I(1).”

KPSS does not replace the ADF test; it cross-examines it.

Our Econometric Analysis service runs the full unit root battery, and the model built on it, in EViews or Stata.

Frequently Asked Questions

What is the null hypothesis of the KPSS unit root test?

The null hypothesis is that the series is stationary around a constant (level) or a linear trend. The alternative is a unit root, the reverse of the ADF and Phillips-Perron tests.

KPSS vs ADF: which test should I use?

Use both. Because ADF assumes a unit root and KPSS assumes stationarity, agreement between them is far more convincing than either result alone, and disagreement signals possible breaks or long memory.

How do I run the KPSS test in EViews?

Open the series, go to View and the unit root test dialog, and set the test type to Kwiatkowski-Phillips-Schmidt-Shin with level or first difference and an intercept or trend and intercept. Stationarity is rejected when the LM statistic exceeds the printed critical value.

Can Celsus run the KPSS test and other unit root tests for my thesis?

Yes. Celsus runs ADF, KPSS and break-robust unit root tests in EViews or Stata, documents every specification and bandwidth choice, and delivers APA-ready tables with a reasoned order-of-integration verdict for your ARDL, VAR or cointegration model.

← All posts