I know that VIF values have no upper limit, and that anything over 10 is usually bad news if you are trying to avoid multicollinearity especially for regression models such as multiple logistic regression.
However - most of what I have read suggests removing the offending infinity variable. Here in lies the problem.
I'm currently working on a dataset with nearly 2000 variables, and every single one has produced a VIF of infinity.
I've been doing this on python:
vif_info = pd.DataFrame() vif_info['VIF'] = [variance_inflation_factor(df.values, i) for i in range(dif.shape)] vif_info['Column'] = df.columns vif_info.sort_values('VIF', ascending=False)
and I have tried various different methods, which have all produced the same results, so I'm relatively sure I haven't done something wrong there.
I have also tried log transforming the data and I still get the same result.
I'm not sure if it adds up though because when I produce something like a clustermap using a regular correlation matrix (see below) there seems to be clear specific variables that are highly correlated but not all variables seem to be this way.
In terms of statistical analysis I'm not sure how one would proceed with these results (or if theres something obvious that I've done wrong).