(vif包建议5以上则存在共线性问题) from statsmodels.stats.outliers_influence import variance_inflation_factor as vif vif(np.array(DataFrame),索引数) #两个参数第一个必须是包含所有解释变量的数组,第二个即为索引值。 features=data.columns removefeatures=[] for i in range(len(features)): vifs=vif(...
在Python中,可以使用statsmodels库中的variance_inflation_factor函数来计算方差膨胀因子。该函数接受一个包含自变量的Dataframe作为参数,并返回每个自变量的方差膨胀因子。 下面是一个使用variance_inflation_factor函数计算方差膨胀因子的示例代码: ```python import pandas as pd from statsmodels.stats.outliers_influence imp...
以下是variance_inflation_factor的源码: fromstatsmodels.regression.linear_modelimportOLSdefvariance_inflation_factor(exog,exog_idx):'''variance inflation factor, VIF, for one exogenous variableThe variance inflation factor is a measure for the increase of thevariance of the parameter estimates if an a...
我们希望预测变量(自变量)与反应变量(因变量)相关,而不是彼此之间具有相关性。方差膨胀因子(Variance Inflation Factor,以下简称VIF),是「指解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比」上图公式可以看出在方差膨胀因子的检测中:每个自变量都会有一个膨胀因子值 ,最后根据值的大小来选择是...
多重线性回归模型的主要假设之一是我们的预测变量(自变量)彼此不相关。我们希望预测变量(自变量)与反应变量(因变量)相关,而不是彼此之间具有相关性。方差膨胀因子 ( Variance Inflation Factor,以下简称 VIF ),是 「指解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比」。
语法:statmodels.stats.outliers_influence.variance_inflation_factor(exog,exog_idx) 主要参数: exog:一个数组,包含对其执行线性回归的特征。 exog_idx:要测量其对其他特征的影响的附加特征的索引。 示例: 下例中使用的数据集包含500人的身高、体重、性别和体重指数。这里的因变量是指数。
相关性就不说了,下面利用statsmodels模块计算VIF,具体函数是variance_inflation_factor,官方文档参见statsmodels.stats.outliers_influence.variance_inflation_factor,statmodels模块说如果VIF大于5,就证明改变量与其他的存在共线性了。 重点:在利用Python的statmodels模块调用variance_inflation_factor计算时,一定要加常数项,不然...
vif_data["VIF"] = [variance_inflation_factor(X.values, i)foriinrange(len(X.columns))]print(vif_data) 结果如下: 通常而言,我们以VIF=10(5也很常用)为判断标准,如果大于10则认为存在多重共线性,需要通过迭代删除VIF值高的变量。
def variance_inflation_factor(exog, exog_idx): """ exog : ndarray, (nobs, k_vars) design matrix with all explanatory variables, as for example used in regression exog_idx : int index of the exogenous variable in the columns of exog """ k_vars = exog.shape[1] x_i = exog[:...