# vcovBK

##### 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)).

- Keywords
- regression

##### Usage

`vcovBK(x, ...)`# S3 method for plm
vcovBK(
x,
type = c("HC0", "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"`

,`"HC1"`

,`"HC2"`

,`"HC3"`

,`"HC4"`

, see Details,- cluster
one of

`"group"`

,`"time"`

,- diagonal
a logical value specifying whether to force nondiagonal elements to zero,

##### Details

`vcovBK`

is a function for estimating a robust covariance matrix of
parameters for a panel model according to the
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 nondiagonal 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 sandwich and are
justified theoretically (although in the context of the standard
linear model) by MACK:WHIT:85;textualplm and
CRIB:04;textualplm @see @ZEIL:04plm.

The main use of `vcovBK`

is to be an argument to other functions,
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). Notice that the `vcov`

and `vcov.`

arguments allow to
supply a function (which is the safest) or a matrix
@see @ZEIL:04, 4.1-2 and examples belowplm.

##### Value

An object of class `"matrix"`

containing the estimate of
the covariance matrix of coefficients.

##### References

BECK:KATZ:95plm

CRIB:04plm

GREE:03plm

MACK:WHIT:85plm

ZEIL:04plm

##### See Also

`sandwich::vcovHC()`

from the sandwich
package for weighting schemes (`type`

argument).

##### Examples

```
# NOT RUN {
library(lmtest)
library(car)
data("Produc", package="plm")
zz <- plm(log(gsp)~log(pcap)+log(pc)+log(emp)+unemp, data=Produc, model="random")
## standard coefficient significance test
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)
## test of hyp.: 2*log(pc)=log(emp)
linearHypothesis(zz, "2*log(pc)=log(emp)", vcov.=vcovBK)
# }
```

*Documentation reproduced from package plm, version 2.2-5, License: GPL (>= 2)*