Solved – High VIF after removing intercept in R

rregression

I'm doing a regression using R.Initially I used the fit=lm(data).Got all of my variables are significant including intercept.I checked the VIF using vif(fit) & got maximum VIF as 2.5. But my customer wants model without intercept and I don't have any option other than removing intercept. So I used following line of code
fit=lm(A ~ B+C+D+E+F-1,data=data) , I'm just coding the variables as it is client data & I can't share that.The data set I used in first model is same as the data set used in second model with same set of variables.Only in second model I removed intercept forcefully.
But after running the model I'm seeing my maximum vif is coming 2079.30. I'm not able to understand the reason for such high vif as I used to think that VIF determines how much the variance of a coefficient is “inflated” because of linear dependence with other predictors & it does not depend on intercept.
Can you expert please help me understand why VIF is drastically changed after removing intercept in R

Best Answer

VIF depends on the intercept because there is an intercept in the regressions used to determine VIFs as described in "Step 1" here. When the intercept is out, then $R_i^2$ is not meaningful because it may be negative, in which case one can get VIF < 1, implying that the $s.e.(\beta_i)$ would go up if predictor $i$ were uncorrelated with the other predictors. You don't need to keep the intercept in the original model, but keep it for VIF computation.

Related Question