VIF | R Documentation |
Calculate generalised variance inflation factors for terms in a fitted model(s) via the variance-covariance matrix of coefficients.
VIF(mod, data = NULL, env = NULL)
mod |
A fitted model object, or a list or nested list of such objects. |
data |
An optional dataset, used to first refit the model(s). |
env |
Environment in which to look for model data (if none supplied).
Defaults to the |
VIF()
calculates generalised variance inflation factors (GVIF) as
described in Fox & Monette (1992), and also implemented in
car::vif()
. However, whereas
car::vif()
returns both GVIF and GVIF^(1/(2*Df)) values, VIF()
simply
returns the squared result of the latter measure, which equals the standard
VIF for single-coefficient terms and is the equivalent measure for
multi-coefficient terms (e.g. categorical or polynomial). Also, while
car::vif()
returns values per model term (i.e. predictor variable),
VIF()
returns values per coefficient, meaning that the same value will be
returned per coefficient for multi-coefficient terms. Finally, NA
is
returned for any terms which could not be estimated in the model (e.g.
aliased).
A numeric vector of the VIFs, or an array, list of vectors/arrays, or nested list.
Fox, J., & Monette, G. (1992). Generalized Collinearity Diagnostics. Journal of the American Statistical Association, 87, 178-183. \Sexpr[results=rd]{tools:::Rd_expr_doi("10/dm9wbw")}
# Model with two correlated terms
m <- shipley.growth[[3]]
VIF(m) # Date & DD somewhat correlated
VIF(update(m, . ~ . - DD)) # drop DD
# Model with different types of predictor (some multi-coefficient terms)
d <- data.frame(
y = rnorm(100),
x1 = rnorm(100),
x2 = as.factor(rep(c("a", "b", "c", "d"), each = 25)),
x3 = rep(1, 100)
)
m <- lm(y ~ poly(x1, 2) + x2 + x3, data = d)
VIF(m)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.