`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 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 of`vcovCR`

for further information.- target
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 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, 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.

## 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
```