I would like to ask about the difference between the vcovHC and vcov in R. The former is described as the Heteroskedasticity-Consistent Covariance Matrix Estimation.
What is the difference between those?
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It only takes a minute to sign up.Sign up to join this community
vcov() function in base R extracts an estimate of the variance-covariance matrix for the estimated parameters of a parametric model. Typically, for most models, this is derived under the assumption that the data fully conform with the model. For the linear regression model in
lm() this means: zero mean, homoscedastic (= constant variance), uncorrelated errors. Also known as "spherical" errors.
In many situations in practice, these assumptions about the errors are violated. If the errors still have zero mean (i.e., the regression equation for the mean is correctly specified) but are heteroscedastic, the parameter estimates from
lm() are still consistent but the corresponding variance-covariance matrix (and thus the standard errors) are biased. One possibility to remedy this situation (among others) is to treat the heteroscedasticity as a nuisance term and derive an estimate of the variance-covariance matrix that is robust against general forms of heteroscedasticity. This is implemented in the
vcovHC() function in the
sandwich package. See: Achim Zeileis (2004). "Econometric Computing with HC and HAC Covariance Matrix Estimators." Journal of Statistical Software, 11(10), 1-17. doi:10.18637/jss.v011.i10. Additionally, the package also provides covariances that are robust against autocorrelation, cluster correlations, etc. for
lm() and beyond.