purtest {plm} | R Documentation

## Unit root tests for panel data

### Description

`purtest` implements several testing procedures that have been proposed to test unit root hypotheses with panel data.

### Usage

    purtest(object, data = NULL, index = NULL,
            test = c("levinlin", "ips", "madwu", "Pm" , "invnormal", "logit", "hadri"),
            exo = c("none", "intercept", "trend"),
            lags = c("SIC", "AIC", "Hall"), pmax = 10, Hcons = TRUE,
            q = NULL, dfcor = FALSE, fixedT = TRUE, ...)
    ## S3 method for class 'purtest'
    print(x, ...)
    ## S3 method for class 'purtest'
    summary(object, ...)
    ## S3 method for class 'summary.purtest'
    print(x, ...)

### Arguments

`object, x` | Either a `"data.frame"` or a matrix containing the time series, a `"pseries"` object, a formula, or the name of a column of a `"data.frame"`, or a `"pdata.frame"` on which the test has to be computed; a `"purtest"` object for the print and summary methods,
`data` | a `"data.frame"` or a `"pdata.frame"` object,
`index` | the indexes,
`test` | the test to be computed: one of `"levinlin"` for Levin, Lin and Chu (2002), `"ips"` for Im, Pesaran and Shin (2003), `"madwu"` for Maddala and Wu (1999), `"Pm"` , `"invnormal"`, or `"logit"` for various tests as in Choi (2001), or `"hadri"` for Hadri (2000), see Details,
`exo` | the exogenous variables to introduce in the augmented Dickey–Fuller (ADF) regressions, one of: no exogenous variables (`"none"`), individual intercepts (`"intercept"`), or individual intercepts and trends (`"trend"`), but see Details,
`lags` | the number of lags to be used for the augmented Dickey-Fuller regressions: either an integer (the number of lags for all time series), a vector of integers (one for each time series), or a character string for an automatic computation of the number of lags, based on either the AIC (`"AIC"`), the SIC (`"SIC"`), or on the method by Hall (1994) (`"Hall"`),
`pmax` | maximum number of lags,
`Hcons` | logical, only relevant for `test = "hadri"`, indicating whether the heteroskedasticity-consistent test of Hadri (2000) should be computed,
`q` | the bandwidth for the estimation of the long-run variance,
`dfcor` | logical, indicating whether the standard deviation of the regressions is to be computed using a degrees-of-freedom correction,
`fixedT` | logical, indicating whether the different ADF regressions are to be computed using the same number of observations,
`...` | further arguments.

### Details

All these tests except `"hadri"` are based on the estimation of augmented Dickey-Fuller (ADF) regressions for each time series. A statistic is then computed using the t-statistics associated with the lagged variable. The Hadri residual-based LM statistic is the cross-sectional average of the individual KPSS statistics (Kwiatkowski/Phillips/Schmidt/Shin (1992)), standardized by their asymptotic mean and standard deviation.

Several Fisher-type tests that combine p-values from tests based on ADF regressions per individual are available:

- `"madwu"` is the inverse chi-squared test (Maddala and Wu (1999)), also called P test by Choi (2001)),

- `"Pm"` is the modified P test proposed by Choi (2001) for large N,

- `"invnormal"` is the inverse normal test by Choi (2001), and

- `"logit"` is the logit test by Choi (2001).

The individual p-values for the Fisher-type tests are approximated as described in MacKinnon (1994).

The kind of test to be computed can be specified in several ways, depending on how the data is handed over to the function:

- For the `formula`/`data` interface (if `data` is a `data.frame`, an additional `index` argument should be specified); the formula should be of the form: `y ~ 0`, `y ~ 1`, or `y ~ trend` for a test with no exogenous variables, with an intercept, or with individual intercepts and time trend, respectively. The `exo` argument is ignored in this case.

- For the `data.frame`, `matrix`, and `pseries` interfaces: in these cases, the exogenous variables are specified using the `exo` argument.

With the associated `summary` and `print` methods, additional information can be extracted/displayed (see also Value).

### Value

An object of class `"purtest"`: a list with the elements `"statistic"` (a `"htest"` object), `"call"`, `"args"`, `"idres"` (containing results from the individual regressions), and `"adjval"` (containing the simulated means and variances needed to compute the statistic).

### Author(s)

Yves Croissant

### References

Choi, I. (2001). “Unit root tests for panel data”, Journal of International Money and Finance, 20(2), pp. 249–272.

Hadri K. (2000). “Testing for Stationarity in Heterogeneous Panel Data”, The Econometrics Journal, 3(2), pp. 148–161.

Hall A. (1994). “Testing for a Unit Root in Time Series with Pretest Data-Based Model Selection”, Journal of Business & Economic Statistics, 12(1), pp. 461–470.

Im K.S., Pesaran M.H. and Shin Y. (2003). “Testing for Unit Roots in Heterogeneous Panels”, Journal of Econometrics, 115(1), pp. 53–74.

Kwiatkowski D., Phillips P. C. B., Schmidt P. and Shin Y. (1992). “Testing the null of stationarity against the alternative of a unit root: How sure are we that economic time series have a unit root?”, Journal of Econometrics, 54(1–3), pp. 159–178.

Levin A., Lin C.-F. and Chu C.-S.J. (2002). “Unit Root Tests in Panel Data: Asymptotic and Finite-Sample Properties”, Journal of Econometrics, 108(1), pp. 1–24.

MacKinnon, J.G. (1994). “Approximate Asymptotic Distribution Functions for Unit-Root and Cointegration Tests”, Journal of Business & Economic Statistics, 12(2), pp. 167–176.

Maddala G.S. and Wu S. (1999). “A Comparative Study of Unit Root Tests with Panel Data and a New Simple Test”, Oxford Bulletin of Economics and Statistics, 61, Supplement 1, pp. 631–652.

### See Also

`cipstest`

### Examples

    data("Grunfeld", package = "plm")
    y <- data.frame(split(Grunfeld$inv, Grunfeld$firm))

    purtest(y, pmax = 4, exo = "intercept", test = "madwu")

    ## same via formula interface
    purtest(inv ~ 1, data = Grunfeld, index = c("firm", "year"), pmax = 4, test = "madwu")

[Package plm version 1.6-6 Index]