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,
ips.stat = NULL,
...
)
## 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 |
a |
index |
the indexes, |
test |
the test to be computed: one of |
exo |
the exogenous variables to introduce in the augmented
Dickey–Fuller (ADF) regressions, one of: no exogenous
variables ( |
lags |
the number of lags to be used for the augmented
Dickey-Fuller regressions: either a single value 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 the AIC
( |
pmax |
maximum number of lags (irrelevant for |
Hcons |
logical, only relevant for |
q |
the bandwidth for the estimation of the long-run variance
(only relevant for |
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 individual ADF
regressions are to be computed using the same number of
observations (irrelevant for |
ips.stat |
|
... |
further arguments (can set argument |
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 et al. (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 (1996) if the package urca (Pfaff (2008)) is available, otherwise as described in MacKinnon (1994).
For the test statistic tbar of the test of Im/Pesaran/Shin (2003)
(ips.stat = "tbar"
), no p-value is given but 1%, 5%, and 10% critical
values are interpolated from paper's tabulated values via inverse distance
weighting (printed and contained in the returned value's element
statistic$ips.tbar.crit
).
Hadri's test, the test of Levin/Lin/Chu, and the tbar statistic of
Im/Pesaran/Shin are not applicable to unbalanced panels; the tbar statistic
is not applicable when lags > 0
is given.
The exogenous instruments of the tests (where applicable) can be specified in several ways, depending on how the data is handed over to the function:
For the
formula
/data
interface (ifdata
is adata.frame
, an additionalindex
argument should be specified); the formula should be of the form:y ~ 0
,y ~ 1
, ory ~ trend
for a test with no exogenous variables, with an intercept, or with individual intercepts and time trend, respectively. Theexo
argument is ignored in this case.For the
data.frame
,matrix
, andpseries
interfaces: in these cases, the exogenous variables are specified using theexo
argument.
With the associated summary
and print
methods, additional
information can be extracted/displayed (see also Value).
Value
For purtest: An object of class "purtest"
: a list with the elements
named:
-
"statistic"
(a"htest"
object), -
"call"
, -
"args"
, -
"idres"
(containing results from the individual regressions), -
"adjval"
(containing the simulated means and variances needed to compute the statistic, fortest = "levinlin"
and"ips"
, otherwiseNULL
), -
"sigma2"
(short-run and long-run variance fortest = "levinlin"
, otherwiseNULL
).
Author(s)
Yves Croissant and for "Pm", "invnormal", and "logit" Kevin Tappe
References
Choi I (2001).
“Unit root tests for panel data.”
Journal of International Money and Finance, 20(2), 249 - 272.
ISSN 0261-5606, https://www.sciencedirect.com/science/article/pii/S0261560600000486.
Hadri K (2000).
“Testing for stationarity in heterogeneous panel data.”
The Econometrics Journal, 3(2), 148–161.
ISSN 13684221, 1368423X.
Hall A (1994).
“Testing for a unit root in time series with pretest data-based model selection.”
Journal of Business & Economic Statistics, 12(4), 461–470.
Im KS, Pesaran MH, Shin Y (2003).
“Testing for unit roots in heterogenous panels.”
Journal of Econometrics, 115(1), 53-74.
Kwiatkowski D, Phillips PC, Schmidt P, Shin Y (1992).
“Testing the null hypothesis 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), 159 - 178.
ISSN 0304-4076, https://www.sciencedirect.com/science/article/pii/030440769290104Y.
Levin A, Lin CF, Chu CSJ (2002).
“Unit root tests in panel data : asymptotic and finite-sample properties.”
Journal of Econometrics, 108, 1-24.
MacKinnon JG (1994).
“Approximate Asymptotic Distribution Functions for Unit-Root and Cointegration Tests.”
Journal of Business & Economic Statistics, 12(2), 167–176.
ISSN 07350015.
MacKinnon JG (1996).
“Numerical Distribution Functions for Unit Root and Cointegration Tests.”
Journal of Applied Econometrics, 11(6), 601–618.
ISSN 08837252.
Maddala GS, 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, 631-52.
Pfaff B (2008).
Analysis of Integrated and Cointegrated Time Series with R, Second edition.
Springer, New York.
ISBN 0-387-27960-1, https://CRAN.r-project.org/package=urca.
See Also
Examples
data("Grunfeld", package = "plm")
y <- data.frame(split(Grunfeld$inv, Grunfeld$firm)) # individuals in columns
purtest(y, pmax = 4, exo = "intercept", test = "madwu")
## same via pseries interface
pGrunfeld <- pdata.frame(Grunfeld, index = c("firm", "year"))
purtest(pGrunfeld$inv, pmax = 4, exo = "intercept", test = "madwu")
## same via formula interface
purtest(inv ~ 1, data = Grunfeld, index = c("firm", "year"), pmax = 4, test = "madwu")