vcovCR.ivreg {clubSandwich} | R Documentation |
Cluster-robust variance-covariance matrix for an ivreg object.
Description
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.
Usage
## S3 method for class 'ivreg'
vcovCR(
obj,
cluster,
type,
target = NULL,
inverse_var = FALSE,
form = "sandwich",
...
)
Arguments
obj |
Fitted model for which to calculate the variance-covariance matrix |
cluster |
Expression or vector indicating which observations belong to
the same cluster. Required for |
type |
Character string specifying which small-sample adjustment should
be used, with available options |
target |
Optional matrix or vector describing the working
variance-covariance model used to calculate the |
inverse_var |
Not used for |
form |
Controls the form of the returned matrix. The default
|
... |
Additional arguments available for some classes of objects. |
Details
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").
Value
An object of class c("vcovCR","clubSandwich")
, which consists
of a matrix of the estimated variance of and covariances between the
regression coefficient estimates.
See Also
Examples
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)
})