vcovSCC {plm} | R Documentation |
Driscoll and Kraay (1998) Robust Covariance Matrix Estimator
Description
Nonparametric robust covariance matrix estimators a la Driscoll and Kraay for panel models with cross-sectional and serial correlation.
Usage
vcovSCC(x, ...)
## S3 method for class 'plm'
vcovSCC(
x,
type = c("HC0", "sss", "HC1", "HC2", "HC3", "HC4"),
cluster = "time",
maxlag = NULL,
inner = c("cluster", "white", "diagavg"),
wj = function(j, maxlag) 1 - j/(maxlag + 1),
...
)
## S3 method for class 'pcce'
vcovSCC(
x,
type = c("HC0", "sss", "HC1", "HC2", "HC3", "HC4"),
cluster = "time",
maxlag = NULL,
inner = c("cluster", "white", "diagavg"),
wj = function(j, maxlag) 1 - j/(maxlag + 1),
...
)
Arguments
x |
an object of class |
... |
further arguments |
type |
the weighting scheme used, one of |
cluster |
switch for vcovG; set at |
maxlag |
either |
inner |
the function to be applied to the residuals inside the
sandwich: |
wj |
weighting function to be applied to lagged terms, |
Details
vcovSCC
is a function for estimating a robust covariance matrix
of parameters for a panel model according to the
Driscoll and Kraay (1998) method, which is consistent
with cross–sectional and serial correlation in a T-asymptotic
setting and irrespective of the N dimension. The use with random
effects models is undocumented.
Weighting schemes specified by type
are analogous to those in
sandwich::vcovHC()
in package sandwich and are
justified theoretically (although in the context of the standard
linear model) by MacKinnon and White (1985) and
Cribari–Neto (2004) (see Zeileis 2004)).
The main use of vcovSCC
(and the other variance-covariance estimators
provided in the package vcovHC
, vcovBK
, vcovNW
, vcovDC
) is to pass
it to plm's own functions like summary
, pwaldtest
, and phtest
or
together with testing functions from the lmtest
and car
packages. All of
these typically allow passing the vcov
or vcov.
parameter either as a
matrix or as a function, e.g., for Wald–type testing: argument vcov.
to
coeftest()
, argument vcov
to waldtest()
and other methods in the
lmtest package; and argument vcov.
to
linearHypothesis()
in the car package (see the
examples), (see also Zeileis 2004), 4.1-2, and examples below.
Value
An object of class "matrix"
containing the estimate of
the covariance matrix of coefficients.
Author(s)
Giovanni Millo, partially ported from Daniel Hoechle's (2007) Stata code
References
Cribari–Neto F (2004). “Asymptotic Inference Under Heteroskedasticity of Unknown Form.” Computational Statistics & Data Analysis, 45, 215–233.
Driscoll JC, Kraay AC (1998). “Consistent covariance matrix estimation with spatially dependent panel data.” Review of economics and statistics, 80(4), 549–560.
Hoechle D (2007). “Robust standard errors for panel regressions with cross-sectional dependence.” Stata Journal, 7(3), 281-312. https://ideas.repec.org/a/tsj/stataj/v7y2007i3p281-312.html.
MacKinnon JG, White H (1985). “Some Heteroskedasticity–Consistent Covariance Matrix Estimators With Improved Finite Sample Properties.” Journal of Econometrics, 29, 305–325.
Zeileis A (2004). “Econometric Computing With HC and HAC Covariance Matrix Estimators.” Journal of Statistical Software, 11(10), 1–17. https://www.jstatsoft.org/article/view/v011i10.
See Also
sandwich::vcovHC()
from the sandwich
package for weighting schemes (type
argument).
Examples
data("Produc", package="plm")
zz <- plm(log(gsp)~log(pcap)+log(pc)+log(emp)+unemp, data=Produc, model="pooling")
## as function input to plm's summary method (with and without additional arguments):
summary(zz, vcov = vcovSCC)
summary(zz, vcov = function(x) vcovSCC(x, method="arellano", type="HC1"))
## standard coefficient significance test
library(lmtest)
coeftest(zz)
## SCC robust significance test, default
coeftest(zz, vcov.=vcovSCC)
## idem with parameters, pass vcov as a function argument
coeftest(zz, vcov.=function(x) vcovSCC(x, type="HC1", maxlag=4))
## joint restriction test
waldtest(zz, update(zz, .~.-log(emp)-unemp), vcov=vcovSCC)
## Not run:
## test of hyp.: 2*log(pc)=log(emp)
library(car)
linearHypothesis(zz, "2*log(pc)=log(emp)", vcov.=vcovSCC)
## End(Not run)