Performs Kwiatkowski-Phillips-Schmidt-Shin (KPSS) test for the null
hypothesis that x
is a stationary univariate time series.
kpss.test(x, lag.short = TRUE, output = TRUE)
A matrix for test results with three columns (lag
, kpss
,
p.value
) and three rows (type1
, type2
, type3
).
Each row is the test results (including lag parameter, test statistic and p.value) for
each type of linear regression models.
a numeric vector or univariate time series.
a logical value indicating whether the parameter of lag to calculate the test statistic is a short or long term. The default is a short term. See details.
a logical value indicating to print out the results in R console.
The default is TRUE
.
Debin Qiu
The Kwiatkowski-Phillips-Schmidt-Shin (KPSS) test tends to decompose the time
series into the sum of a deterministic trend, a random walk, and a stationary error:
$$x[t] = \alpha*t + u[t] + e[t],$$
where \(u[t]\) satisfies \(u[t] = u[t-1] + a[t]\), and \(a[t]\) are i.i.d
\((0,\sigma^2)\). The null hypothesis is that \(\sigma^2 = 0\), which implies
x
is a stationary time series. In order to calculate the test statistic,
we consider three types of linear regression models.
The first type (type1
) is the one with no drift and deterministic trend,
defined as $$x[t] = u[t] + e[t].$$
The second type (type2
) is the one with drift but no trend:
$$x[t] = \mu + u[t] + e[t].$$
The third type (type3
) is the one with both drift and trend:
$$x[t] = \mu + \alpha*t + u[t] + e[t].$$
The details of calculation of test statistic (kpss
) can be seen in the references
below. The default parameter of lag to calculate the test statistic is
\(max(1,floor(3*sqrt(n)/13)\) for short term effect, otherwise,
\(max(1,floor(10*sqrt(n)/13)\) for long term effect.
The p.value is calculated by the interpolation of test statistic from tables of
critical values (Table 5, Hobijn B., Franses PH. and Ooms M (2004)) for a given
sample size \(n\) = length(x
).
Hobijn B, Franses PH and Ooms M (2004). Generalization of the KPSS-test for stationarity. Statistica Neerlandica, vol. 58, p. 482-502.
Kwiatkowski, D.; Phillips, P. C. B.; Schmidt, P.; Shin, Y. (1992). Testing the null hypothesis of stationarity against the alternative of a unit root. Journal of Econometrics, 54 (1-3): 159-178.
adf.test
, pp.test
, stationary.test
# KPSS test for AR(1) process
x <- arima.sim(list(order = c(1,0,0),ar = 0.2),n = 100)
kpss.test(x)
# KPSS test for co2 data
kpss.test(co2)
Run the code above in your browser using DataLab