Heteroskedasticity-Consistent Covariance Matrix Estimation

Heteroskedasticity-consistent estimation of the covariance matrix of the coefficient estimates in regression models.

regression, ts
vcovHC(x, …)

# S3 method for default vcovHC(x, type = c("HC3", "const", "HC", "HC0", "HC1", "HC2", "HC4", "HC4m", "HC5"), omega = NULL, sandwich = TRUE, …)

meatHC(x, type = , omega = NULL, …)


a fitted model object.


a character string specifying the estimation type. For details see below.


a vector or a function depending on the arguments residuals (the working residuals of the model), diaghat (the diagonal of the corresponding hat matrix) and df (the residual degrees of freedom). For details see below.


logical. Should the sandwich estimator be computed? If set to FALSE only the meat matrix is returned.

arguments passed to sandwich (in vcovHC) and estfun (in meatHC), respectively.


The function meatHC is the real work horse for estimating the meat of HC sandwich estimators -- the default vcovHC method is a wrapper calling sandwich and bread. See Zeileis (2006) for more implementation details. The theoretical background, exemplified for the linear regression model, is described below and in Zeileis (2004). Analogous formulas are employed for other types of models.

When type = "const" constant variances are assumed and and vcovHC gives the usual estimate of the covariance matrix of the coefficient estimates:

$$\hat \sigma^2 (X^\top X)^{-1}$$

All other methods do not assume constant variances and are suitable in case of heteroskedasticity. "HC" (or equivalently "HC0") gives White's estimator, the other estimators are refinements of this. They are all of form

$$(X^\top X)^{-1} X^\top \Omega X (X^\top X)^{-1}$$

and differ in the choice of Omega. This is in all cases a diagonal matrix whose elements can be either supplied as a vector omega or as a a function omega of the residuals, the diagonal elements of the hat matrix and the residual degrees of freedom. For White's estimator

omega <- function(residuals, diaghat, df) residuals^2

Instead of specifying the diagonal omega or a function for estimating it, the type argument can be used to specify the HC0 to HC5 estimators. If omega is used, type is ignored.

Long \& Ervin (2000) conduct a simulation study of HC estimators (HC0 to HC3) in the linear regression model, recommending to use HC3 which is thus the default in vcovHC. Cribari-Neto (2004), Cribari-Neto, Souza, \& Vasconcellos (2007), and Cribari-Neto \& Da Silva (2011), respectively, suggest the HC4, HC5, and modified HC4m type estimators. All of them are tailored to take into account the effect of leverage points in the design matrix. For more details see the references.


A matrix containing the covariance matrix estimate.


Cribari-Neto F. (2004), Asymptotic Inference under Heteroskedasticity of Unknown Form. Computational Statistics & Data Analysis 45, 215--233.

Cribari-Neto F., Da Silva W.B. (2011), A New Heteroskedasticity-Consistent Covariance Matrix Estimator for the Linear Regression Model. Advances in Statistical Analysis, 95(2), 129--146.

Cribari-Neto F., Souza T.C., Vasconcellos, K.L.P. (2007), Inference under Heteroskedasticity and Leveraged Data. Communications in Statistics -- Theory and Methods, 36, 1877--1888. Errata: 37, 3329--3330, 2008.

Long J. S., Ervin L. H. (2000), Using Heteroscedasticity Consistent Standard Errors in the Linear Regression Model. The American Statistician, 54, 217--224.

MacKinnon J. G., White H. (1985), Some Heteroskedasticity-Consistent Covariance Matrix Estimators with Improved Finite Sample Properties. Journal of Econometrics 29, 305--325.

White H. (1980), A Heteroskedasticity-Consistent Covariance Matrix and a Direct Test for Heteroskedasticity. Econometrica 48, 817--838.

Zeileis A (2004), Econometric Computing with HC and HAC Covariance Matrix Estimators. Journal of Statistical Software, 11(10), 1--17. URL

Zeileis A (2006), Object-Oriented Computation of Sandwich Estimators. Journal of Statistical Software, 16(9), 1--16. URL

See Also

lm, hccm, bptest, ncv.test

  • vcovHC
  • vcovHC.default
  • vcovHC.mlm
  • meatHC
## generate linear regression relationship
## with homoskedastic variances
x <- sin(1:100)
y <- 1 + x + rnorm(100)
## model fit and HC3 covariance
fm <- lm(y ~ x)
## usual covariance matrix
vcovHC(fm, type = "const")

sigma2 <- sum(residuals(lm(y ~ x))^2)/98
sigma2 * solve(crossprod(cbind(1, x)))
# }
Documentation reproduced from package sandwich, version 2.5-0, License: GPL-2 | GPL-3

Community examples

Looks like there are no examples yet.