vcovCR.plm {clubSandwich} | R Documentation |
Cluster-robust variance-covariance matrix for a plm object.
Description
vcovCR
returns a sandwich estimate of the variance-covariance matrix
of a set of regression coefficient estimates from a plm
object.
Usage
## S3 method for class 'plm'
vcovCR(
obj,
cluster,
type,
target,
inverse_var,
form = "sandwich",
ignore_FE = FALSE,
...
)
Arguments
obj |
Fitted model for which to calculate the variance-covariance matrix |
cluster |
Optional character string, expression, or vector indicating
which observations belong to the same cluster. For fixed-effect models that
include individual effects or time effects (but not both), the cluster will
be taken equal to the included fixed effects if not otherwise specified.
Clustering on individuals can also be obtained by specifying the name of
the individual index (e.g., |
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 |
Optional logical indicating whether the weights used in
fitting the model are inverse-variance. If not specified, |
form |
Controls the form of the returned matrix. The default
|
ignore_FE |
Optional logical controlling whether fixed effects are ignored when calculating small-sample adjustments in models where fixed effects are estimated through absorption. |
... |
Additional arguments available for some classes of objects. |
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("plm", quietly = TRUE)) withAutoprint({
library(plm)
# fixed effects
data("Produc", package = "plm")
plm_FE <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, index = c("state","year","region"),
effect = "individual", model = "within")
vcovCR(plm_FE, type="CR2")
vcovCR(plm_FE, type = "CR2", cluster = Produc$region) # clustering on region
# random effects
plm_RE <- update(plm_FE, model = "random")
vcovCR(plm_RE, type = "CR2")
vcovCR(plm_RE, type = "CR2", cluster = Produc$region) # clustering on region
# nested random effects
plm_nested <- update(plm_FE, effect = "nested", model = "random")
vcovCR(plm_nested, type = "CR2") # clustering on region
})
pkgs_available <- requireNamespace("plm", quietly = TRUE) & requireNamespace("AER", quietly = TRUE)
if (pkgs_available) withAutoprint({
# first differencing
data(Fatalities, package = "AER")
Fatalities <- within(Fatalities, {
frate <- 10000 * fatal / pop
drinkagec <- cut(drinkage, breaks = 18:22, include.lowest = TRUE, right = FALSE)
drinkagec <- relevel(drinkagec, ref = 4)
})
plm_FD <- plm(frate ~ beertax + drinkagec + miles + unemp + log(income),
data = Fatalities, index = c("state", "year"),
model = "fd")
vcovHC(plm_FD, method="arellano", type = "sss", cluster = "group")
vcovCR(plm_FD, type = "CR1S")
vcovCR(plm_FD, type = "CR2")
})