In the usual VIF calculation for a linear regression, each independent/explanatory variable $X_j$ is treated as the dependent variable in an ordinary least squares regression. i.e.

$$ X_j = \beta_0 + \sum_{i=1, i \neq j}^n \beta_i X_i $$

The $R^2$ values are stored for each of the $n$ regressions and VIF is determined by

$$ VIF_j = \frac{1}{1-R^2_j} $$

for a particular explanatory variable.

Suppose my generalize additive model takes the form, $$ Y=\beta_0+ \sum_{i=1}^n \beta_iX_i + \sum_{j=1}^m s_j(X_i) . $$

Is there an equivalent VIF calculation for this type of model? Is there a way I can control for the smooth terms $s_j$ to test for multicollinearity?


1 Answer 1


There is a function in r corvif() which can be found in AED package. For examples and references see Zuur et al. 2009. Mixed Effects Models and Extensions in Ecology with R pp. 386-387. The code for the package is available from the book website http://www.highstat.com/book2.htm.

  • 8
    $\begingroup$ You'll get my vote if you spruce up your answer with some of the math. :) $\endgroup$
    – Alexis
    Commented Mar 16, 2015 at 19:50
  • 8
    $\begingroup$ @Alexis is right. This is helpful, but note that the question isn't asking for R code. Can you explain the application of the VIF to GAMs conceptually? $\endgroup$ Commented Mar 16, 2015 at 19:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.