vcovBK function

Beck and Katz Robust Covariance Matrix Estimators

Beck and Katz Robust Covariance Matrix Estimators

Unconditional Robust covariance matrix estimators a la Beck and Katz for panel models (a.k.a. Panel Corrected Standard Errors (PCSE)).

vcovBK(x, ...) ## S3 method for class 'plm' vcovBK( x, type = c("HC0", "sss", "HC1", "HC2", "HC3", "HC4"), cluster = c("group", "time"), diagonal = FALSE, ... )

Arguments

  • x: an object of class "plm",
  • ...: further arguments.
  • type: the weighting scheme used, one of "HC0", "sss", "HC1", "HC2", "HC3", "HC4", see Details,
  • cluster: one of "group", "time",
  • diagonal: a logical value specifying whether to force non-diagonal elements to zero,

Returns

An object of class "matrix" containing the estimate of the covariance matrix of coefficients.

Details

vcovBK is a function for estimating a robust covariance matrix of parameters for a panel model according to the \insertCite BECK:KATZ:95;textualplm method, a.k.a. Panel Corrected Standard Errors (PCSE), which uses an unconditional estimate of the error covariance across time periods (groups) inside the standard formula for coefficient covariance. Observations may be clustered either by "group" to account for timewise heteroskedasticity and serial correlation or by "time" to account for cross-sectional heteroskedasticity and correlation. It must be borne in mind that the Beck and Katz formula is based on N- (T-) asymptotics and will not be appropriate elsewhere.

The diagonal logical argument can be used, if set to TRUE, to force to zero all non-diagonal elements in the estimated error covariances; this is appropriate if both serial and cross--sectional correlation are assumed out, and yields a timewise- (groupwise-) heteroskedasticity--consistent estimator.

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 vcovBK (and the other variance-covariance estimators provided in the package vcovHC, vcovNW, vcovDC, vcovSCC) 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), see \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="random") summary(zz, vcov = vcovBK) summary(zz, vcov = function(x) vcovBK(x, type="HC1")) ## standard coefficient significance test library(lmtest) coeftest(zz) ## robust significance test, cluster by group ## (robust vs. serial correlation), default arguments coeftest(zz, vcov.=vcovBK) ## idem with parameters, pass vcov as a function argument coeftest(zz, vcov.=function(x) vcovBK(x, type="HC1")) ## idem, cluster by time period ## (robust vs. cross-sectional correlation) coeftest(zz, vcov.=function(x) vcovBK(x, type="HC1", cluster="time")) ## idem with parameters, pass vcov as a matrix argument coeftest(zz, vcov.=vcovBK(zz, type="HC1")) ## joint restriction test waldtest(zz, update(zz, .~.-log(emp)-unemp), vcov=vcovBK) ## Not run: ## test of hyp.: 2*log(pc)=log(emp) library(car) linearHypothesis(zz, "2*log(pc)=log(emp)", vcov.=vcovBK) ## End(Not run)

References

\insertRef BECK:KATZ:95plm

\insertRef CRIB:04plm

\insertRef GREE:03plm

\insertRef MACK:WHIT:85plm

\insertRef ZEIL:04plm

See Also

sandwich::vcovHC() from the list("sandwich")

package for weighting schemes (type argument).

Author(s)

Giovanni Millo