Driscoll and Kraay (1998) Robust Covariance Matrix Estimator
Driscoll and Kraay (1998) Robust Covariance Matrix Estimator
Nonparametric robust covariance matrix estimators a la Driscoll and Kraay for panel models with cross-sectional and serial correlation.
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 "plm" or "pcce"
...: further arguments
type: the weighting scheme used, one of "HC0", "sss", "HC1", "HC2", "HC3", "HC4", see Details,
cluster: switch for vcovG; set at "time" here,
maxlag: either NULL or a positive integer specifying the maximum lag order before truncation
inner: the function to be applied to the residuals inside the sandwich: "cluster" for SCC, "white" for Newey-West, ("diagavg" for compatibility reasons)
wj: weighting function to be applied to lagged terms,
Returns
An object of class "matrix" containing the estimate of the covariance matrix of coefficients.
Details
vcovSCC is a function for estimating a robust covariance matrix of parameters for a panel model according to the \insertCite DRIS:KRAA:98;textualplm 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 list("sandwich") and are justified theoretically (although in the context of the standard linear model) by \insertCite MACK:WHIT:85;textualplm and \insertCite CRIB:04;textualplm \insertCite @see @ZEIL:04plm).
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 list("lmtest") package; and argument vcov. to linearHypothesis() in the list("car") package (see the examples), \insertCite @see also @ZEIL:04plm, 4.1-2, and examples below.
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 testlibrary(lmtest)coeftest(zz)## SCC robust significance test, defaultcoeftest(zz, vcov.=vcovSCC)## idem with parameters, pass vcov as a function argumentcoeftest(zz, vcov.=function(x) vcovSCC(x, type="HC1", maxlag=4))## joint restriction testwaldtest(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)