R: Beck and Katz Robust Covariance Matrix Estimators

vcovBK {plm} | R Documentation

## Beck and Katz Robust Covariance Matrix Estimators

### Description

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

### Usage

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

### Arguments

`x` | an object of class `"plm"`
`type` | one of `"HC0"`, `"HC1"`, `"HC2"`, `"HC3"`, `"HC4"`,
`cluster` | one of `"group"`, `"time"`
`diagonal` | a logical value specifying whether to force nondiagonal elements to zero
`...` | further arguments.

### Details

`vcovBK` is a function for estimating a robust covariance matrix of parameters for a panel model according to the Beck and Katz (1995) 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 are analogous to those in `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 `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 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

### References

Beck, N. and Katz, J. (1995) What to do (and not to do) with time-series cross-section data in comparative politics. American Political Science Review, 89(3), pp. 634–647.

Cribari-Neto, F. (2004) Asymptotic inference under heteroskedasticity of unknown form. Computational Statistics & Data Analysis 45(2), pp. 215–233.

Greene, W. H. (2003) Econometric Analysis, 5th ed., Prentice Hall/Pearson, Upper Saddle River, New Jersey, Sec. 13.9.3, 13.9.7.

MacKinnon, J. G. and White, H. (1985) Some heteroskedasticity-consistent covariance matrix estimators with improved finite sample properties. Journal of Econometrics 29(3), pp. 305–325.

Zeileis, A. (2004) Econometric Computing with HC and HAC Covariance Matrix Estimators. Journal of Statistical Software, 11(10), pp. 1–17. URL http://www.jstatsoft.org/v11/i10/.

### See Also

`vcovHC` from the sandwich package for weighting schemes (`type` argument).

### Examples

    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)

[Package plm version 1.6-5 Index]