Randomization-based test of spatial dependence for panel models, robust to global dependence induced by common factors and to persistence (serial correlation) in the data
rwtest(x, ...)
# S3 method for formula
rwtest(x, data, w, index = NULL, model = NULL,
replications = 99, seed=NULL, order=1,
mc=1, test = c("rho", "cd", "sclm"),
alternative=c("twosided", "onesided",
"symmetric"), ...)
# S3 method for panelmodel
rwtest(x, w, replications = 99, seed=NULL,
order=1, mc=1,
test = c("rho", "cd", "sclm"),
alternative=c("twosided", "onesided",
"symmetric"), ...)
# S3 method for pseries
rwtest(x, w, replications = 99, seed=NULL,
order=1, mc=1,
test = c("rho", "cd", "sclm"),
alternative=c("twosided", "onesided",
"symmetric"), ...)
An object of class "htest"
.
an object of class formula
, panelmodel
, or pseries
(depending on the respective interface) describing the model to be tested
a data.frame
a n x n
matrix
describing proximity between
individuals, with \(w_ij = a\) where \(a\) is any number such
that as.logical(a)==TRUE
,
if \(i,j\) are neighbours, \(0\) or any number \(b\) such that
as.logical(b)==FALSE
elsewhere. Only the lower triangluar part
(without diagonal) of w
after coercing by as.logical()
is evaluated for neighbouring information (but w
can be
symmetric). See also Details and Examples.
an optional numerical index, in case data
has to be
formatted by plm.data
an optional character string indicating which type of
model to estimate;
if left to NULL
, the original heterogeneous specification of
Pesaran is used
the number of Monte Carlo randomizations of the neighbourhood matrix (default: 99),
the optional random seed,
the order of neighbourhood to test for,
the number of parallel threads to execute; defaults to 1 (serial execution); is limited to the number of execution cores actually available, and depends on operating system support.
the type of test statistic to be returned. One of
"rho"
for the average correlation coefficient,
"cd"
for Pesaran's CD statistic, or
"sclm"
for the scaled version of Breusch and Pagan's LM
statistic,
the alternative hypothesis for the test, defaulting to (asymmetric) twosided,
further arguments to be passed on to plm
, such as
e.g. effect
or random.method
Giovanni Millo
This test is meant as a generalization of Pesaran's spatial dependence test "CD(p)" for robustness against global dependence (perhaps of the factor type) and persistence in the data, both of which the original test does not tolerate.
The procedure can be applied to model residuals as well as to
individual pseries
.
See the comments in pcdtest
as for the different methods.
Space is defined supplying a proximity matrix (elements coercible to
logical
) with argument w
which provides information on
whether any pair of individuals are neighbours or not. If
order=1
, only first-order neighbouring pairs will be used in
computing the test; else, w
will be transformed in the
neighbourhood matrix of the appropriate order. The matrix need not be
binary, so commonly used ``row--standardized'' matrices can be employed
as well. nb
objects from spdep must instead be transformed
into matrices by spdep's function nb2mat
before using.
Notice that the "rho"
and "cd"
tests are permutationally
equivalent.
The test is suitable also for unbalanced panels.
The test on a pseries
is the same as a test on a pooled
regression model of that variable on a constant,
i.e. rwtest(some_pseries)
is equivalent to
rwtest(plm(some_var ~ 1, data = some_pdata.frame, model =
"pooling")
and also equivalent to rwtest(some_var ~ 1, data =
some_data)
, where some_var
is the variable name in the data
which corresponds to some_pseries
.
Millo, G. (2016), A simple randomization test for spatial dependence in the presence of common factors and serial correlation, (unpublished), xx(x), pp. xxx--xxx. Pesaran, M.H. (2004), General Diagnostic Tests for Cross Section Dependence in Panels, CESifo Working Paper 1229. Pesaran, M.H. (2015), Testing Weak Cross--Sectional Dependence in Large Panels, Econometric Reviews, 34(6-10), pp. 1089--1117.
data(Produc, package = "plm")
data(usaww)
fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp
## test on heterogeneous model (separate time series regressions)
rwtest(fm, data = Produc, w=usaww, index = c("state", "year"))
## test on two-way fixed effects homogeneous model
rwtest(fm, data = Produc, w=usaww, index = c("state", "year"),
model = "within", effect = "twoways")
## test on panelmodel object
library(plm)
g <- plm(fm, data = Produc)
rwtest(g, w=usaww)
## test on pseries, higher-order neighbourhood
pprod <- pdata.frame(Produc)
rwtest(pprod$gsp, w=usaww, order=3)
Run the code above in your browser using DataLab