KPSS Procedure |
@KPSS performs the KPSS test from Kwiatowski, Phillips, Schmidt & Shin(1992). Unlike most unit root tests, this has the null of stationarity (around a constant or trend) and rejects if the series is more persistent than would be compatible with stationarity. Note that it is quite possible for a test with a null of a unit root (such as a Dickey-Fuller test) to fail to reject the unit root, and for the KPSS test to fail to reject stationarity.
@KPSS( options ) series start end
Wizards
This is included as one of the tests in the Time Series—Unit Root Test Wizard.
Parameters
series series to analyze
start end range of series to use. By default, the defined range of series.
Options
DET=[CONSTANT]/TREND
The component around which the null of stationarity is assumed. You should not do DET=CONSTANT on a clearly trending series, as the results will be flawed.
LMAX=maximum number of lags in window [not used]
LAGS=specific number of lags to use [4]
The KPSS test requires an estimate of the long-run variance, which is computed using a Bartlett (Newey-West) window. The value of the test statistic will change based upon the number used. If you use the LMAX option, the procedure will show the test statistic for the range of lags up to LMAX. Otherwise, it will do only the test with the number of lags chosen. In practice, the test statistic will typically stabilize once the number of lags seems to be adequate.
[PRINT]/NOPRINT
TITLE=title for report ["KPSS Test for Stationarity"]
Variables Defined
|
%CDSTAT |
test statistic (using highest lag) |
|
%NOBS |
number of observations |
Example
*
* FVO2P103.RPF
* KPSS Unit root tests, UK Consumption
*
calendar(q) 1955:1
open data "UK_household_final_consumption.xlsx"
data(format=xlsx,nolabels,org=columns,top=3,left=2) 1955:01 2012:04 ukconssa ukconsnsa
*
set logc = log(ukconssa)
@kpss(det=trend,lag=10) logc 1961:1 2000:4
@kpss(det=trend,lmax=15) logc 1961:1 2000:4
Sample Output
This shows the output from the example, the first with the fixed choice of 10 lags in the calculation of the long-run variance, second with the table of lags from 0 to 15. You would conclude from this that trend-stationarity is rejected in favor of a non-stationary (unit-root) process.
KPSS Test for Stationarity, Series LOGC
From 1961:01 to 2000:04
Observations 160
Null is Stationary about Trend. Reject for large values.
Sig Level Crit Value
1%(**) 0.216
2.5% 0.176
5%(*) 0.146
10% 0.119
Lags TestStat
10 0.203*
KPSS Test for Stationarity, Series LOGC
From 1961:01 to 2000:04
Observations 160
Null is Stationary about Trend. Reject for large values.
Sig Level Crit Value
1%(**) 0.216
2.5% 0.176
5%(*) 0.146
10% 0.119
Lags TestStat
0 1.784**
1 0.915**
2 0.621**
3 0.475**
4 0.388**
5 0.330**
6 0.289**
7 0.259**
8 0.236**
9 0.218**
10 0.203*
11 0.192*
12 0.182*
13 0.174*
14 0.167*
15 0.161*
Copyright © 2025 Thomas A. Doan