在讨论VIF之前,首先要了解线性回归中的多重共线性是什么?

多重共线性的情况发生在两个独立变量之间存在强相关性的情况下。

无论何时进行探索性数据分析,我们的目标是获得影响目标变量的显著参数。

因此,相关性是帮助我们了解两个变量之间存在的线性关系的重要步骤。

什么是相关性?

相关性测量两个变量之间的相互依赖程度。

通过视觉检查两个变量之间存在哪种相关性的想法。我们可以绘制图表并解释一个属性值的增加如何影响另一个属性值。

在统计学方面,我们可以使用皮尔逊相关性来获取相关性系数和P值。

让我们看看相关性的标准 -

相关系数关系
1. 接近+1大正相关
2. 接近-1大负相关
3. 接近0不存在关系
P-值确定性
P-值<0.001
P-值<0.05中等
P-值<0.1
P-值>0.1不存在

现在我们已经详细了解了相关性,我们现在明白了,如果数据集的两个独立变量之间存在强相关性,那么会导致多重共线性。

让我们讨论由于多重共线性可能会出现哪些问题 -

  1. 由于存在强关系,确定显著变量将是一项困难的任务。
  2. 我们将获得的变量系数可能不稳定,因此模型的解释将是一项繁琐的工作。
  3. 可能会发生过拟合,并且模型的准确性将随着数据集的变化而变化。

检查多重共线性

检查多重共线性的两种方法是 -

  • 绘制热图以理解相关性
  • 使用方差膨胀因子(VIF)

绘制热图以理解相关性

使用数据集,绘制热图将帮助我们推断哪个属性具有最高的相关性值。这个值将告诉我们因变量和自变量之间的影响程度。

让我们看一个示例程序,演示了如何实现这一点。

示例 -

import matplotlib.pyplot as plt  
import pandas as pd  
import seaborn as sns  
    
# importing the data  
df = pd.read_csv("/content/SampleSuperstore.csv")  
  
print(df.corr())  
    
# plotting the correlation heatmap  
df_plot = sns.heatmap(df.corr(), cmap="YlGnBu", annot=True)  
    
# displaying the heatmap  
plt.show()  

输出:

269-1.png

使用方差膨胀因子(VIF)

方差膨胀因子(VIF)是用于衡量在多元回归中涉及的变量集中存在的多重共线性的度量。

通常,VIF值超过10表示与其他独立变量存在高相关性。

让我们看一个示例程序,演示了如何实现这一点。

示例 -

from statsmodels.stats.outliers_influence import variance_inflation_factor  
from statsmodels.tools.tools import add_constant  
import pandas as pd  
  
df = pd.DataFrame(  
    {'x': [2, 2, 4, 1, 3],  
     'y': [1, 1, 2, 3, 2],  
     'z': [7, 4, 8, 6, 9],  
     'w': [5, 4, 3, 4, 5]}  
)  
  
X = add_constant(df)  
ds=pd.Series([variance_inflation_factor(X.values, i)   
               for i in range(X.shape[1])],   
              index=X.columns)  
print(ds)  

输出:

269-2.png

解决多重共线性问题的不同方法 -

  • 选择变量

应该以一种方式选择变量,即删除高度相关的变量,仅使用显著变量。

  • 变量的转换

变量的转换是一个重要步骤,这里的目标是保持特征,但是通过进行转换可以给我们一个不会产生偏倚结果的范围。

  • 主成分分析

主成分分析是一种降维技术,通过该技术,我们可以获得数据集的显著特征,这些特征对我们的目标变量产生了很大的影响。

在实施PCA时,我们要注意的一件事是,不要丢失重要的特征,并尽量以能够获取最大可能的信息的方式减少它们。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程