vcovCR
returns a sandwich estimate of the variance-covariance matrix
of a set of regression coefficient estimates from an glm
object.
Usage
# S3 method for class 'glm'
vcovCR(
obj,
cluster,
type,
target = NULL,
inverse_var = NULL,
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
glm
objects.- type
Character string specifying which small-sample adjustment should be used, with available options
"CR0"
,"CR1"
,"CR1p"
,"CR1S"
,"CR2"
, or"CR3"
. See "Details" section ofvcovCR
for further information.- target
Optional matrix or vector describing the working variance-covariance model used to calculate the
CR2
andCR4
adjustment matrices. If a vector, the target matrix is assumed to be diagonal. If not specified, the target is taken to be the estimated variance function.- inverse_var
Optional logical indicating whether the weights used in fitting the model are inverse-variance. If not specified,
vcovCR
will attempt to infer a value.- form
Controls the form of the returned matrix. The default
"sandwich"
will return the sandwich variance-covariance matrix. Alternately, settingform = "meat"
will return only the meat of the sandwich and settingform = B
, whereB
is a matrix of appropriate dimension, will return the sandwich variance-covariance matrix calculated usingB
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.
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.
Examples
if (requireNamespace("geepack", quietly = TRUE)) {
data(dietox, package = "geepack")
dietox$Cu <- as.factor(dietox$Cu)
weight_fit <- glm(Weight ~ Cu * poly(Time, 3), data=dietox, family = "quasipoisson")
V_CR <- vcovCR(weight_fit, cluster = dietox$Pig, type = "CR2")
coef_test(weight_fit, vcov = V_CR, test = "Satterthwaite")
}
#> Coef. Estimate SE t-stat d.f. (Satt) p-val (Satt) Sig.
#> (Intercept) 4.0124 0.0190 211.193 22.0 <0.001 ***
#> CuCu035 -0.0134 0.0286 -0.469 45.7 0.641
#> CuCu175 0.0330 0.0333 0.993 44.8 0.326
#> poly(Time, 3)1 12.7115 0.2414 52.655 22.0 <0.001 ***
#> poly(Time, 3)2 -1.6810 0.1456 -11.545 22.0 <0.001 ***
#> poly(Time, 3)3 0.0292 0.0566 0.517 21.9 0.611
#> CuCu035:poly(Time, 3)1 -0.0823 0.3120 -0.264 45.6 0.793
#> CuCu175:poly(Time, 3)1 -0.3242 0.3433 -0.944 44.8 0.350
#> CuCu035:poly(Time, 3)2 0.0927 0.2113 0.439 45.6 0.663
#> CuCu175:poly(Time, 3)2 -0.1777 0.1656 -1.073 44.8 0.289
#> CuCu035:poly(Time, 3)3 -0.1010 0.1013 -0.997 45.5 0.324
#> CuCu175:poly(Time, 3)3 0.1146 0.0998 1.149 44.7 0.257