check.collin {misty} | R Documentation |
Collinearity Diagnostics
Description
This function computes tolerance, standard error inflation factor, variance inflation factor, eigenvalues, condition index, and variance proportions for linear, generalized linear, and mixed-effects models.
Usage
check.collin(model, print = c("all", "vif", "eigen"), digits = 3, p.digits = 3,
write = NULL, append = TRUE, check = TRUE, output = TRUE)
Arguments
model |
a fitted model of class |
print |
a character vector indicating which results to show, i.e. |
digits |
an integer value indicating the number of decimal places to be used for displaying results. |
p.digits |
an integer value indicating the number of decimal places to be used for displaying the p-value. |
write |
a character string naming a text file with file extension
|
append |
logical: if |
check |
logical: if |
output |
logical: if |
Details
Collinearity diagnostics can be conducted for objects returned from the lm()
and glm()
function, but also from objects returned from the lmer()
and glmer()
function from the lme4 package, lme()
function
from the nlme package, and the glmmTMB()
function from the glmmTMB
package.
The generalized variance inflation factor (Fox & Monette, 1992) is computed for
terms with more than 1 df resulting from factors with more than two levels. The
generalized VIF (GVIF) is interpretable as the inflation in size of the confidence
ellipse or ellipsoid for the coefficients of the term in comparison with what would
be obtained for orthogonal data. GVIF is invariant to the coding of the terms in
the model. In order to adjust for the dimension of the confidence ellipsoid,
GVIF^\frac{1}{2df}
is computed. Note that the adjusted GVIF (aGVIF) is
actually a generalized standard error inflation factor (GSIF). Thus, the aGIF
needs to be squared before applying a common cutoff threshold for the VIF (e.g.,
VIF > 10). Note that the output of check.collin()
function reports either
the variance inflation factor or the squared generalized variance inflation factor
in the column VIF
, while the standard error inflation factor or the adjusted
generalized variance inflation factor is reported in the column SIF
.
Value
Returns an object of class misty.object
, which is a list with following
entries:
call |
function call |
type |
type of analysis |
model |
model specified in the |
args |
specification of function arguments |
result |
list with result tables, i.e., |
Note
The computation of the VIF and the GVIF is based on the vif()
function
in the car package by John Fox, Sanford Weisberg and Brad Price (2020),
and the computation of eigenvalues, condition index, and variance proportions
is based on the ols_eigen_cindex()
function in the olsrr package
by Aravind Hebbali (2020).
Author(s)
Takuya Yanagida takuya.yanagida@univie.ac.at
References
Fox, J., & Monette, G. (1992). Generalized collinearity diagnostics. Journal of the American Statistical Association, 87, 178-183.
Fox, J., Weisberg, S., & Price, B. (2020). car: Companion to Applied Regression. R package version 3.0-8. https://cran.r-project.org/web/packages/car/
Hebbali, A. (2020). olsrr: Tools for building OLS regression models. R package version 0.5.3. https://cran.r-project.org/web/packages/olsrr/
See Also
Examples
dat <- data.frame(group = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4),
x1 = c(3, 2, 4, 9, 5, 3, 6, 4, 5, 6, 3, 5),
x2 = c(1, 4, 3, 1, 2, 4, 3, 5, 1, 7, 8, 7),
x3 = c(7, 3, 4, 2, 5, 6, 4, 2, 3, 5, 2, 8),
x4 = c("a", "b", "a", "c", "c", "c", "a", "b", "b", "c", "a", "c"),
y1 = c(2, 7, 4, 4, 7, 8, 4, 2, 5, 1, 3, 8),
y2 = c(0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1),
stringsAsFactors = TRUE)
#-------------------------------------------------------------------------------
# Linear model
# Estimate linear model with continuous predictors
mod.lm1 <- lm(y1 ~ x1 + x2 + x3, data = dat)
# Example 1: Tolerance, std. error, and variance inflation factor
check.collin(mod.lm1)
# Example 2: Tolerance, std. error, and variance inflation factor
# Eigenvalue, Condition index, and variance proportions
check.collin(mod.lm1, print = "all")
# Estimate model with continuous and categorical predictors
mod.lm2 <- lm(y1 ~ x1 + x2 + x3 + x4, data = dat)
# Example 3: Tolerance, generalized std. error, and variance inflation factor
check.collin(mod.lm2)
#-------------------------------------------------------------------------------
# Generalized linear model
# Estimate logistic regression model with continuous predictors
mod.glm <- glm(y2 ~ x1 + x2 + x3, data = dat, family = "binomial")
# Example 4: Tolerance, std. error, and variance inflation factor
check.collin(mod.glm)
## Not run:
#-------------------------------------------------------------------------------
# Linear mixed-effects model
# Estimate linear mixed-effects model with continuous predictors using lme4 package
mod.lmer <- lme4::lmer(y1 ~ x1 + x2 + x3 + (1|group), data = dat)
# Example 5: Tolerance, std. error, and variance inflation factor
check.collin(mod.lmer)
# Estimate linear mixed-effects model with continuous predictors using nlme package
mod.lme <- nlme::lme(y1 ~ x1 + x2 + x3, random = ~ 1 | group, data = dat)
# Example 6: Tolerance, std. error, and variance inflation factor
check.collin(mod.lme)
# Estimate linear mixed-effects model with continuous predictors using glmmTMB package
mod.glmmTMB1 <- glmmTMB::glmmTMB(y1 ~ x1 + x2 + x3 + (1|group), data = dat)
# Example 7: Tolerance, std. error, and variance inflation factor
check.collin(mod.glmmTMB1)
#-------------------------------------------------------------------------------
# Generalized linear mixed-effects model
# Estimate mixed-effects logistic regression model with continuous predictors using lme4 package
mod.glmer <- lme4::glmer(y2 ~ x1 + x2 + x3 + (1|group), data = dat, family = "binomial")
# Example 8: Tolerance, std. error, and variance inflation factor
check.collin(mod.glmer)
# Estimate mixed-effects logistic regression model with continuous predictors using glmmTMB package
mod.glmmTMB2 <- glmmTMB::glmmTMB(y2 ~ x1 + x2 + x3 + (1|group), data = dat, family = "binomial")
# Example 9: Tolerance, std. error, and variance inflation factor
check.collin(mod.glmmTMB2)
#----------------------------------------------------------------------------
# Write Results
# Example 10: Write results into a text file
check.collin(mod.lm1, write = "Diagnostics.txt")
## End(Not run)