Heteroscedasticity-Consistent Covariance Matrix Estimation
Heteroscedasticity-consistent estimation of the covariance matrix of the coefficient estimates in regression models.
vcovHC(x, ...) ## Default S3 method: vcovHC(x, type = c("HC3", "const", "HC", "HC0", "HC1", "HC2", "HC4", "HC4m", "HC5"), omega = NULL, sandwich = TRUE, ...) meatHC(x, type = , omega = NULL, ...)
x |
a fitted model object. |
type |
a character string specifying the estimation type. For details see below. |
omega |
a vector or a
function depending on the arguments |
sandwich |
logical. Should the sandwich estimator be computed?
If set to |
... |
arguments passed to |
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:
sigma^2 (X'X)^{-1}
All other methods do not assume constant variances and are suitable in case of
heteroscedasticity. "HC"
(or equivalently "HC0"
) gives White's
estimator, the other estimators are refinements of this. They are all of form
(X'X)^{-1} X' Omega X (X'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. doi: 10.18637/jss.v011.i10
Zeileis A (2006). “Object-Oriented Computation of Sandwich Estimators.” Journal of Statistical Software, 16(9), 1–16. doi: 10.18637/jss.v016.i09
## generate linear regression relationship ## with homoscedastic variances x <- sin(1:100) y <- 1 + x + rnorm(100) ## model fit and HC3 covariance fm <- lm(y ~ x) vcovHC(fm) ## usual covariance matrix vcovHC(fm, type = "const") vcov(fm) sigma2 <- sum(residuals(lm(y ~ x))^2)/98 sigma2 * solve(crossprod(cbind(1, x)))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.