vcovCR
returns a sandwich estimate of the variance-covariance matrix
of a set of regression coefficient estimates from an ivreg object fitted
from the AER package or the ivreg package.
# S3 method for ivreg
vcovCR(
obj,
cluster,
type,
target = NULL,
inverse_var = FALSE,
form = "sandwich",
...
)
An object of class c("vcovCR","clubSandwich")
, which consists
of a matrix of the estimated variance of and covariances between the
regression coefficient estimates.
Fitted model for which to calculate the variance-covariance matrix
Expression or vector indicating which observations belong to
the same cluster. Required for ivreg
objects.
Character string specifying which small-sample adjustment should
be used, with available options "CR0"
, "CR1"
, "CR1p"
,
"CR1S"
, "CR2"
, or "CR3"
. See "Details" section of
vcovCR
for further information.
Optional matrix or vector describing the working
variance-covariance model used to calculate the CR2
and CR4
adjustment matrices. If a vector, the target matrix is assumed to be
diagonal. If not specified, the target is taken to be an identity matrix.
Not used for ivreg
objects.
Controls the form of the returned matrix. The default
"sandwich"
will return the sandwich variance-covariance matrix.
Alternately, setting form = "meat"
will return only the meat of the
sandwich and setting form = B
, where B
is a matrix of
appropriate dimension, will return the sandwich variance-covariance matrix
calculated using B
as the bread. form = "estfun"
will return the
(appropriately scaled) estimating function, the transposed crossproduct of
which is equal to the sandwich variance-covariance matrix.
Additional arguments available for some classes of objects.
For any "ivreg" objects fitted via the ivreg
function from the ivreg package, only traditional 2SLS
regression method (method = "OLS") is supported.
clubSandwich currently cannot support robust-regression methods such as
M-estimation (method = "M") or MM-estimation (method = "MM").
vcovCR
if (requireNamespace("AER", quietly = TRUE)) withAutoprint({
library(AER)
data("CigarettesSW")
Cigs <- within(CigarettesSW, {
rprice <- price/cpi
rincome <- income/population/cpi
tdiff <- (taxs - tax)/cpi
})
iv_fit_AER <- AER::ivreg(log(packs) ~ log(rprice) + log(rincome) |
log(rincome) + tdiff + I(tax/cpi), data = Cigs)
vcovCR(iv_fit_AER, cluster = Cigs$state, type = "CR2")
coef_test(iv_fit_AER, vcov = "CR2", cluster = Cigs$state)
})
pkgs_available <-
requireNamespace("AER", quietly = TRUE) &
requireNamespace("ivreg", quietly = TRUE)
if (pkgs_available) withAutoprint ({
data("CigarettesSW")
Cigs <- within(CigarettesSW, {
rprice <- price/cpi
rincome <- income/population/cpi
tdiff <- (taxs - tax)/cpi
})
iv_fit_ivreg <- ivreg::ivreg(log(packs) ~ log(rprice) + log(rincome) |
log(rincome) + tdiff + I(tax/cpi), data = Cigs)
vcovCR(iv_fit_ivreg, cluster = Cigs$state, type = "CR2")
coef_test(iv_fit_ivreg, vcov = "CR2", cluster = Cigs$state)
})
Run the code above in your browser using DataLab