利用Python诊断多重共线性

可能R更简单。


#

pass

# import module

方差膨胀因子 Variance Inflation Factor 是有效评估多重共线性程度的常见指标。在利用 Python 诊断自变量之间的多重共线性过程用, statsmodels  pandas 库分别在提供诊断方法方面与承载数据方面发挥重要作用。

# 引入VIF计算方法
from statsmodels.stats.outliers_influence import variance_inflation_factor
# 引入OLS方法
import statsmodels.formula.api as sfa
# 承载数据
import pandas

# 计算VIF

cal_df = pandas.DataFrame({
    'y': y_list,
    'x_1': x_1_list,
    'x_2': x_2_list
})
ols_result = sfa.ols('y~x_1+x_2', data=cal_df).fit()
# 共三个变量,后两个为自变量
for i in range(1, 3, 1):
    vif = variance_inflation_factor(ols_result.model.exog, i)

# 通过VIF评估多重共线性程度

一般而言,若VIF≥10,则表明自变量存在严重的多重共线性问题。

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments