Vous pouvez vérifier VIF (Variance Inflation Factor) en Python, et vous pouvez vérifier la colinéarité multiple entre les variables explicatives tout en regardant ce résultat. Généralement, lorsque VIF> 10, on peut juger que la colinéarité multiple est forte.
from statsmodels.stats.outliers_influence import variance_inflation_factor
df_all = pd.read_excel('train.xlsx',sheet_name="Sheet1")
cols = df_all.select_dtypes(include=[np.number]).columns
cols_x = cols[1:]
data_x = df_all[cols_x]
#Calculer vif
vif = pd.DataFrame()
vif["VIF Factor"] = [variance_inflation_factor(data_x.values, i) for i in range(data_x.shape[1])]
#vif["features"] = data_x.columns
#afficher le résultat du calcul de vif
print(vif)
#Graphique vif
plt.plot(vif["VIF Factor"])
Le résultat sortira comme ça. C'est pratique!
On a découvert que VIF est sorti avec des résultats différents ('Д') .. !!
En premier lieu, VIF est calculé par la formule suivante.
VIF = 1/(1-R2) #R2: coefficient de décision
Lorsqu'une des variables explicatives est considérée comme la variable objective, le coefficient de décision R2 obtenu lors de la réalisation d'une analyse de régression multiple avec les variables explicatives restantes est utilisé. En parlant sensuellement, je comprends que si vous pouvez exprimer une variable, qui est la variable explicative restante, eh bien, vous n'avez pas besoin de cette variable? Le fait que le VIF soit différent signifie que ce R2 est différent entre Python et Excel, alors j'ai paniqué un instant.
Il s'est avéré que la raison était différente, qu'il s'agisse ou non d'inclure la section dans la variable explicative.
Du côté Python, traiter comme section = 0 Quand je l'ai examiné dans Excel, je n'ai pas spécifié la section.
J'ai pu confirmer que les VIF correspondent également lorsque j'ai défini la section = 0 dans Excel.
↑ S'il faut vérifier ici
Je pense à ce qui précède, mais qu'en est-il de tout le monde? Je suis également curieux de savoir ce qu'est l'algorithme de calcul VIF du modèle de statistiques en premier lieu.
Recommended Posts