vcovCR returns a sandwich estimate of the variance-covariance matrix
of a set of regression coefficient estimates from a gls object.
Usage
# S3 method for class 'gls'
vcovCR(obj, cluster, type, target, inverse_var, form = "sandwich", ...)Arguments
- obj
Fitted model for which to calculate the variance-covariance matrix
- cluster
Optional expression or vector indicating which observations belong to the same cluster. If not specified, will be set to
getGroups(obj).- type
Character string specifying which small-sample adjustment should be used, with available options
"CR0","CR1","CR1p","CR1S","CR2", or"CR3". See "Details" section ofvcovCRfor further information.- target
Optional matrix or vector describing the working variance-covariance model used to calculate the
CR2andCR4adjustment matrices. If not specified, the target is taken to be the estimated variance-covariance structure of theglsobject.- inverse_var
Optional logical indicating whether the weights used in fitting the model are inverse-variance. If not specified,
vcovCRwill 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, whereBis a matrix of appropriate dimension, will return the sandwich variance-covariance matrix calculated usingBas 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("nlme", quietly = TRUE)) {
library(nlme)
data(Ovary, package = "nlme")
Ovary$time_int <- 1:nrow(Ovary)
lm_AR1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), data = Ovary,
correlation = corAR1(form = ~ time_int | Mare))
vcovCR(lm_AR1, type = "CR2")
}
#> (Intercept) sin(2 * pi * Time) cos(2 * pi * Time)
#> (Intercept) 1.0319747 -0.25050263 -0.28914347
#> sin(2 * pi * Time) -0.2505026 0.31620081 0.02677139
#> cos(2 * pi * Time) -0.2891435 0.02677139 0.16709681