Python 中的 vif

2025年3月17日 | 阅读 3 分钟

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

当两个自变量具有强相关性时,就会出现多重共线性。

每当我们进行探索性数据分析时,目标就是获得对目标变量有显著影响的参数。

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

什么是相关性?

相关性衡量两个变量相互依赖的程度。

一种可视化方法,用于检查两个变量之间存在何种相关性。我们可以绘制图形并解释一个属性值的增加如何影响另一个属性。

在统计学中,我们可以使用Pearson Correlation来获得相关性。它为我们提供相关系数和 P 值。

让我们来看一下标准-

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

既然我们现在对相关性有了详细的了解,我们就明白了,如果数据集中两个自变量之间存在强相关性,就会导致多重共线性。

让我们来讨论一下多重共线性可能导致哪些问题-

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

检查多重共线性

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

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

绘制热力图以理解相关性

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

让我们来看一个演示如何实现的程序。

示例 -

输出

vif in Python

使用方差膨胀因子 (Variance Inflation Factor)

方差膨胀因子是多重回归中涉及的变量集中的多重共线性度量。

一般来说,vif 值高于 10 表明与其他自变量存在高度相关性。

让我们来看一个演示如何实现的程序。

示例 -

输出

vif in Python

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

  • 变量选择

应以这样的方式选择变量:删除高度相关的变量,只使用显著变量。

  • 变量变换

变量变换是一个不可或缺的步骤,其目的是在保持特征的同时进行变换,这可以给我们一个不会产生有偏结果的范围。

  • 主成分分析

主成分分析 (Principal Component Analysis) 是一种降维技术,通过它可以获得数据集中对目标变量有强烈影响的显著特征。

在实现 PCA 时,我们必须注意的一点是,我们不应丢失基本特征,并尝试以最大程度地收集信息的方式来减少它们。