【问题标题】:Am i using statsmodel statsmodels.stats.outliers_influence.variance_inflation_factor right?我使用 statsmodel statsmodels.stats.outliers_influence.variance_inflation_factor 对吗?
【发布时间】:2019-08-01 04:37:14
【问题描述】:

目前,我正在使用 VIF 检测多重共线性。但是,网上几乎没有可以参考的例子,所以我自己尝试使用它。

cat_var = df[["BsmtExposure","MSZoning","Exterior1st","MSSubClass","GarageType","GarageFinish"]].apply(preprocessing.LabelEncoder().fit_transform)
dfX = df[["OverallQual","ExterQual","GrLivArea","1stFlrSF","GarageCars","BsmtQual","HeatingQC","YearBuilt"]]
data_categorical = dfX.join(cat_var)
sm_data_categorical = sm.add_constant(data_categorical)
vifDf = sm_data_categorical
vifDf = vifDf.drop(["OverallQual","YearBuilt"],axis=1)
feature = vifDf.columns
print(feature)
vif = [variance_inflation_factor(vifDf[feature].values,feature.get_loc(var)) for var in feature]
print(vif)

Output:
[139.09182494163923, 1.9269169697717614, 1.794083234373851, 1.828696948899336, 1.6357605533337554, 1.680843256052908, 1.4734276288799137, 1.2599932369972506, 1.0704636681342352, 1.1139451723386682, 1.2658662212832537, 1.4714527943918547, 1.2728931548738207]

我也使用过 statsmodels.add_constant。

【问题讨论】:

    标签: python machine-learning regression


    【解决方案1】:

    Aaron,有一个名为 mcTest 的 R 包,它对变量进行多重共线性诊断。有关实施的更多信息,这是一个链接(http://rfaqs.com/mctest-r-package-detection-collinearity-among-regressors)。 希望对您有所帮助。

    【讨论】:

    • 对不起,我目前正在使用 python,但我很感谢你的帮助
    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2013-03-06
    • 1970-01-01
    相关资源
    最近更新 更多