Performs the Phillips-Perron test for the null hypothesis of a unit root of
a univariate time series `x`

(equivalently, `x`

is a non-stationary time series).

`pp.test(x, type = c("Z_rho", "Z_tau"), lag.short = TRUE, output = TRUE)`

A matrix for test results with three columns (`lag`

,`Z_rho`

or `Z_tau`

, `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 equation.

- x
a numeric vector or univariate time series.

- type
the type of Phillips-Perron test. The default is

`Z_rho`

.- lag.short
a logical value indicating whether the parameter of lag to calculate the statistic is a short or long term. The default is a short term.

- output
a logical value indicating to print the results in R console. The default is

`TRUE`

.

Debin Qiu

Compared with the Augmented Dickey-Fuller test, Phillips-Perron test makes
correction to the test statistics and is robust to the unspecified autocorrelation
and heteroscedasticity in the errors. There are two types of test statistics,
\(Z_{\rho}\) and \(Z_{\tau}\), which have the same asymptotic distributions
as Augmented Dickey-Fuller test statistic, `ADF`

. The calculations of each type
of the Phillips-Perron test can be see in the reference below. If the
`lag.short = TRUE`

, we use the default number of Newey-West lags
\(floor(4*(length(x)/100)^0.25)\),
otherwise \(floor(12*(length(x)/100)^0.25)\) to calculate the test statistics.
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 linear trend with respect to time:
$$x[t] = \rho*x[t-1] + e[t],$$
where \(e[t]\) is an error term.
The second type (`type2`

) is the one with drift but no linear trend:
$$x[t] = \mu + \rho*x[t-1] + e[t].$$
The third type (type3) is the one with both drift and linear trend:
$$x[t] = \mu + \alpha*t + \rho*x[t-1] + e[t].$$
The p.value is calculated by the interpolation of test statistics from the critical values
tables (Table 10.A.1 for `Z_rho`

and 10.A.2 for `Z_tau`

in Fuller (1996))
with a given sample size \(n\) = length(`x`

).

Phillips, P. C. B.; Perron, P. (1988). Testing for a Unit Root in Time Series Regression.
*Biometrika*, 75 (2): 335-346.

Fuller, W. A. (1996). Introduction to statistical time series, second ed., Wiley, New York.

`adf.test`

, `kpss.test`

, `stationary.test`

```
# PP test for ar(1) process
x <- arima.sim(list(order = c(1,0,0),ar = 0.2),n = 100)
pp.test(x)
# PP test for co2 data
pp.test(co2)
```

Run the code above in your browser using DataCamp Workspace