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?


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.

| cite | improve this answer | |
  • 8
    $\begingroup$ You'll get my vote if you spruce up your answer with some of the math. :) $\endgroup$ – Alexis Mar 16 '15 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$ – gung - Reinstate Monica Mar 16 '15 at 19:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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