vcovHC.plm | R Documentation |

Robust covariance matrix estimators *a la White* for panel
models.

```
## S3 method for class 'plm'
vcovHC(
x,
method = c("arellano", "white1", "white2"),
type = c("HC0", "sss", "HC1", "HC2", "HC3", "HC4"),
cluster = c("group", "time"),
...
)
## S3 method for class 'pcce'
vcovHC(
x,
method = c("arellano", "white1", "white2"),
type = c("HC0", "sss", "HC1", "HC2", "HC3", "HC4"),
cluster = c("group", "time"),
...
)
## S3 method for class 'pgmm'
vcovHC(x, ...)
```

`x` |
an object of class |

`method` |
one of |

`type` |
the weighting scheme used, one of |

`cluster` |
one of |

`...` |
further arguments. |

`vcovHC`

is a function for estimating a robust covariance matrix of
parameters for a fixed effects or random effects panel model
according to the White method
\insertCiteWHIT:80,WHIT:84b,AREL:87plm. Observations may be
clustered by `"group"`

(`"time"`

) to account for serial
(cross-sectional) correlation.

All types assume no intragroup (serial) correlation between errors
and allow for heteroskedasticity across groups (time periods). As
for the error covariance matrix of every single group of
observations, `"white1"`

allows for general heteroskedasticity but
no serial (cross–sectional) correlation; `"white2"`

is `"white1"`

restricted to a common variance inside every group (time period)
\insertCite@see @GREE:03, Sec. 13.7.1-2, @GREE:12, Sec. 11.6.1-2
and @WOOL:02, Sec. 10.7.2plm; `"arellano"`

\insertCite@see
ibid. and the original ref. @AREL:87plm allows a fully general
structure w.r.t. heteroskedasticity and serial (cross–sectional)
correlation.

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 \insertCiteMACK:WHIT:85;textualplm and
\insertCiteCRIB:04;textualplm
\insertCiteZEIL:04plm. `type = "sss"`

employs the small sample
correction as used by Stata.

The main use of `vcovHC`

(and the other variance-covariance estimators
provided in the package `vcovBK`

, `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
lmtest package; and argument `vcov.`

to
`linearHypothesis()`

in the car package (see the
examples), see \insertCite@see also @ZEIL:04plm, 4.1-2, and examples below.

A special procedure for `pgmm`

objects, proposed by
\insertCiteWIND:05;textualplm, is also provided.

An object of class `"matrix"`

containing the estimate of
the asymptotic covariance matrix of coefficients.

The function `pvcovHC`

is deprecated. Use `vcovHC`

for the
same functionality.

Giovanni Millo & Yves Croissant

AREL:87plm

\insertRefCRIB:04plm

\insertRefGREE:03plm

\insertRefGREE:12plm

\insertRefMACK:WHIT:85plm

\insertRefWIND:05plm

\insertRefWHIT:84bplm chap. 6

\insertRefWHIT:80plm

\insertRefWOOL:02plm

\insertRefZEIL:04plm

`sandwich::vcovHC()`

from the sandwich
package for weighting schemes (`type`

argument).

```
data("Produc", package = "plm")
zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, model = "random")
## as function input to plm's summary method (with and without additional arguments):
summary(zz, vcov = vcovHC)
summary(zz, vcov = function(x) vcovHC(x, method="arellano", type="HC1"))
## standard coefficient significance test
library(lmtest)
coeftest(zz)
## robust significance test, cluster by group
## (robust vs. serial correlation)
coeftest(zz, vcov.=vcovHC)
## idem with parameters, pass vcov as a function argument
coeftest(zz, vcov.=function(x) vcovHC(x, method="arellano", type="HC1"))
## idem, cluster by time period
## (robust vs. cross-sectional correlation)
coeftest(zz, vcov.=function(x) vcovHC(x, method="arellano",
type="HC1", cluster="group"))
## idem with parameters, pass vcov as a matrix argument
coeftest(zz, vcov.=vcovHC(zz, method="arellano", type="HC1"))
## joint restriction test
waldtest(zz, update(zz, .~.-log(emp)-unemp), vcov=vcovHC)
## Not run:
## test of hyp.: 2*log(pc)=log(emp)
library(car)
linearHypothesis(zz, "2*log(pc)=log(emp)", vcov.=vcovHC)
## End(Not run)
## Robust inference for CCE models
data("Produc", package = "plm")
ccepmod <- pcce(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, model="p")
summary(ccepmod, vcov = vcovHC)
## Robust inference for GMM models
data("EmplUK", package="plm")
ar <- pgmm(log(emp) ~ lag(log(emp), 1:2) + lag(log(wage), 0:1)
+ log(capital) + lag(log(capital), 2) + log(output)
+ lag(log(output),2) | lag(log(emp), 2:99),
data = EmplUK, effect = "twoways", model = "twosteps")
rv <- vcovHC(ar)
mtest(ar, order = 2, vcov = rv)
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.