get_varcov {insight} | R Documentation |
Get variance-covariance matrix from models
Description
Returns the variance-covariance, as retrieved by stats::vcov()
, but works
for more model objects that probably don't provide a vcov()
-method.
Usage
get_varcov(x, ...)
## Default S3 method:
get_varcov(x, verbose = TRUE, vcov = NULL, vcov_args = NULL, ...)
## S3 method for class 'glmgee'
get_varcov(x, verbose = TRUE, vcov = "robust", ...)
## S3 method for class 'hurdle'
get_varcov(
x,
component = "conditional",
vcov = NULL,
vcov_args = NULL,
verbose = TRUE,
...
)
## S3 method for class 'aov'
get_varcov(x, complete = FALSE, verbose = TRUE, ...)
## S3 method for class 'mixor'
get_varcov(x, effects = "all", verbose = TRUE, ...)
Arguments
x |
A model. |
... |
Currently not used. |
verbose |
Toggle warnings. |
vcov |
Variance-covariance matrix used to compute uncertainty estimates (e.g., for robust standard errors). This argument accepts a covariance matrix, a function which returns a covariance matrix, or a string which identifies the function to be used to compute the covariance matrix.
One exception are models of class |
vcov_args |
List of arguments to be passed to the function identified by
the |
component |
Should the complete variance-covariance matrix of the model
be returned, or only for specific model components only (like count or
zero-inflated model parts)? Applies to models with zero-inflated component,
or models with precision (e.g. |
complete |
Logical, if |
effects |
Should the complete variance-covariance matrix of the model
be returned, or only for specific model parameters only? Currently only
applies to models of class |
Value
The variance-covariance matrix, as matrix
-object.
Model components
Possible values for the component
argument depend on the model class.
Following are valid options:
-
"all"
: returns all model components, applies to all models, but will only have an effect for models with more than just the conditional model component. -
"conditional"
: only returns the conditional component, i.e. "fixed effects" terms from the model. Will only have an effect for models with more than just the conditional model component. -
"smooth_terms"
: returns smooth terms, only applies to GAMs (or similar models that may contain smooth terms). -
"zero_inflated"
(or"zi"
): returns the zero-inflation component. -
"dispersion"
: returns the dispersion model component. This is common for models with zero-inflation or that can model the dispersion parameter. -
"instruments"
: for instrumental-variable or some fixed effects regression, returns the instruments. -
"nonlinear"
: for non-linear models (like models of classnlmerMod
ornls
), returns staring estimates for the nonlinear parameters. -
"correlation"
: for models with correlation-component, likegls
, the variables used to describe the correlation structure are returned. -
"location"
: returns location parameters such asconditional
,zero_inflated
,smooth_terms
, orinstruments
(everything that are fixed or random effects - depending on theeffects
argument - but no auxiliary parameters). -
"distributional"
(or"auxiliary"
): components likesigma
,dispersion
,beta
orprecision
(and other auxiliary parameters) are returned.
Special models
Some model classes also allow rather uncommon options. These are:
-
mhurdle:
"infrequent_purchase"
,"ip"
, and"auxiliary"
-
BGGM:
"correlation"
and"intercept"
-
BFBayesFactor, glmx:
"extra"
-
averaging:
"conditional"
and"full"
-
mjoint:
"survival"
-
mfx:
"precision"
,"marginal"
-
betareg, DirichletRegModel:
"precision"
-
mvord:
"thresholds"
and"correlation"
-
clm2:
"scale"
-
selection:
"selection"
,"outcome"
, and"auxiliary"
For models of class brmsfit
(package brms), even more options are
possible for the component
argument, which are not all documented in detail
here. It can be any pre-defined or arbitrary distributional parameter, like
mu
, ndt
, kappa
, etc.
Note
get_varcov()
tries to return the nearest positive definite matrix
in case of negative eigenvalues of the variance-covariance matrix. This
ensures that it is still possible, for instance, to calculate standard
errors of model parameters. A message is shown when the matrix is negative
definite and a corrected matrix is returned.
Examples
data(mtcars)
m <- lm(mpg ~ wt + cyl + vs, data = mtcars)
get_varcov(m)
# vcov of zero-inflation component from hurdle-model
data("bioChemists", package = "pscl")
mod <- hurdle(art ~ phd + fem | ment, data = bioChemists, dist = "negbin")
get_varcov(mod, component = "zero_inflated")
# robust vcov of, count component from hurdle-model
data("bioChemists", package = "pscl")
mod <- hurdle(art ~ phd + fem | ment, data = bioChemists, dist = "negbin")
get_varcov(
mod,
component = "conditional",
vcov = "BS",
vcov_args = list(R = 50)
)