为什么在现代统计/机器学习中不检查多重共线性


44

在传统统计中,在建立模型时,我们使用方差膨胀因子(VIF)估计之类的方法检查多重共线性,但在机器学习中,我们使用正则化进行特征选择,并且似乎不检查特征是否相关完全没有 我们为什么要这样做?

Answers:


51

考虑多元共线性在回归分析中很重要,因为在极值中,它直接取决于您的系数是否在数据中唯一标识。在不太严重的情况下,它仍然会干扰您的系数估算;用于估算的数据的细微变化可能会导致估算系数的剧烈波动。从推论的角度来看,这可能是有问题的:如果两个变量高度相关,则一个变量的增加可能会被另一个变量的减少所抵消,因此,合并后的效果将相互抵消。使用两个以上的变量,效果可能更加微妙,但是如果预测是稳定的,那么对于机器学习应用程序来说通常就足够了。

考虑为什么我们在回归情况下正规化:我们需要从正在收缩模型过于灵活。应用正确量的正则化将略微增加偏差,从而大幅减少方差。典型的例子是在回归中添加多项式项和交互作用:在退化的情况下,预测方程将对数据点进行插值,但是在尝试预测看不见的数据点的值时可能会很糟糕。缩小这些系数可能会最小化或完全消除其中一些系数,并提高泛化性。

但是,通过在每个分割处采样的变量数量,可以看到随机森林具有正则化参数:分割越大,分割越好mtry(更好的功能可供选择;某些功能比其他功能更好),但是使得每棵树与彼此之间的关联度更高,从而在某种程度上减轻了首先估计多棵树的多样化影响。这个难题迫使人们找到正确的平衡,通常使用交叉验证来实现。重要的是,与回归分析相反,随机森林模型的任何部分都不会受到高度共线性的变量的损害:即使其中两个变量提供相同的子节点纯度,您也可以选择一个而不会降低结果的质量。

同样,对于SVM之类的内容,可以包含比特征更多的预测变量,因为内核技巧可以使您仅对那些特征向量的内积进行运算。在回归分析中,具有比观测更多的特征将是一个问题,但是内核技巧意味着我们仅估计每个示例的系数,而正则化参数降低了解决方案的灵活性-这是一件好事,因为估计参数对于CNN以不受限制的方式进行观察将始终会生成关于测试数据的完美模型-然后我们将整个过程转回脊线/ LASSO /弹性净回归场景,在该场景中,我们将模型的灵活性作为对过分乐观的模型的检验而受到了限制。回顾SVM问题的KKT条件,可以发现SVM解决方案是唯一的,因此我们不必担心在回归案例中出现的标识问题。

最后,考虑多重共线性的实际影响。它不会改变模型的预测能力(至少在训练数据上),但确实会影响我们的系数估计。在大多数机器学习应用中,我们并不关心系数本身,只是失去了模型预测,因此从这种意义上讲,检查VIF并没有真正回答相应的问题。(但是,如果数据的微小变化导致系数[多重共线性的典型症状]发生巨大波动,那么它也可能会更改预测,在这种情况下,我们确实会在意-但是,[我们希望!]的所有这些特征在我们执行交叉验证,这始终是建模过程的一部分。)更容易解释回归,但是对于某些任务来说,解释可能不是最重要的目标。


1
对于因果回归建模,使用倾向性评分或回归调整之类的技术,共线性甚至对于预测也可能是个问题,因为通常的目标是将模型专门适合于对照组/未暴露人群,然后在实验中使用该模型估算结果组,或者将这两个组结合起来,但是使用一个指标变量来测量在控制其他因素的情况下进入实验组的效果。
伊利

1
如果共线性在系数中产生误差,则扩展到实验组的回归将不起作用。同样,如果对两个子样本进行一次回归,则可能会抛弃已接受治疗的指标变量的系数估计。现代机器学习技术通常不用于分析这些类型的因果关系问题,因此没有人需要面对工具来解决这一问题。
ely

@ely,在您的第一个示例中,共线性(在协变量中,而不是治疗方法中)不会引起问题,因为再次,目标是对反事实结果的预测,而对预测而言,共线性也不是问题。同样,现代的机器学习方法经常用于因果推理。广义增强模型和随机森林被广泛用于估计倾向得分,TMLE使用ML方法来估算反事实结果。我认为因果方法的优势在于共线性通常对他们而言不是问题。
诺亚

@Noah通常重要的是曝光系数的解释(以及其他效果估计的解释),而不仅仅是原始的预测准确性。我意识到我的评论并不清楚,但这就是为什么这是一个问题。如果总体预测是好的,但是并没有真正地与估计的暴露系数相关联,那么对于因果推断,这通常是不受欢迎的模型。
ely

21

原因是因为“传统统计”的目标不同于许多机器学习技术。

通过“传统统计”,我假设您是指回归及其变体。在回归中,我们试图了解自变量对因变量的影响。如果存在很强的多重共线性,那就根本不可能。没有算法可以解决此问题。如果好学程度与班级出勤率和学业成绩相关联,我们就无法知道真正导致成绩提高的因素是出勤率或好学率。

但是,在专注于预测准确性的机器学习技术中,我们关心的只是如何使用一组变量来预测另一组。我们不在乎这些变量相互之间的影响。

基本上,我们不检查机器学习技术中的多重共线性这一事实不是算法的结果,而是目标的结果。通过注意到变量之间的强共线性不会损害回归方法的预测准确性,您可以看到这一点。


11

这里似乎存在一个基本假设,即不检查共线性是合理的甚至最佳实践。这似乎是有缺陷的。例如,在具有许多预测变量的数据集中检查完美的共线性将揭示两个变量是否实际上是同一事物,例如出生日期和年龄(示例取自Dormann等人(2013年),《生态学》,第36卷,第1期,第27-46)。我有时还看到在Kaggle竞赛中出现完全相关的预测变量的问题,论坛上的竞争对手试图消除已匿名的潜在预测变量(即,隐藏了预测变量标签,这是Kaggle和类似Kaggle竞赛中的常见问题)。

机器学习中还有一项活动是选择预测变量-识别高度相关的预测变量可能使工作人员找到作为另一个基础(隐藏)变量的代理的预测变量,并最终找到一个最能代表潜在变量或变量的变量。或者,建议可以组合的变量(例如,通过PCA)。

因此,我建议尽管机器学习方法通​​常(或至少经常)被设计成在面对相关预测变量时具有鲁棒性,但了解预测变量的相关程度通常是生成鲁棒且准确的模型的有用步骤,对于获得优化的模型非常有用。


9

多重共线性的主要问题是它弄乱了自变量的系数(β)。这就是为什么当您研究变量之间的关系,建立因果关系等时,这是一个严重的问题。

但是,如果您对了解这种现象不感兴趣,而仅专注于预测和预测,那么多重共线性就不是问题了。或者至少那是人们对此的看法。

我这里不是在讨论完美的多重共线性,这是一个技术问题或识别问题。从技术上讲,这仅意味着设计矩阵会导致奇异性,并且未定义解决方案。


4
即使具有完美的共线性,也可以很好地定义预测
ub

@whuber,如果您使用OLS,则stat程序包可能会引发错误,因为它无法将矩阵求逆。聪明的人可能会放弃其中一个独立的var,然后继续前进。
阿克萨卡(Aksakal)

2
如果您使用广义逆,那么这个奇点不成问题。
分析师

1
我不遵循您的逻辑,阿克萨卡尔(Aksakal):您是否在试图建议机器学习技术与统计技术不同,因为前者在某种程度上不存在降阶矩阵的问题?这是一个有趣的想法。
ub

1
@user,独立变量几乎总是相关的,通常没关系。只有完美的多重共线性会导致秩不足。多重共线性指的是非常强的相关性,通常是不希望的,但是正如我之前写的,在许多情况下,这是一个良性问题。
阿克萨卡(Aksakal)

7

这些机器学习中的正则化可稳定回归系数,因此至少可以抑制多重共线性的影响。但是更重要的是,如果您要进行预测(机器学习者经常是哪个人),那么多重共线性“问题”首先并不是大问题。当您需要估计特定系数而又没有信息时,这是一个问题。

另外,我对“ LASSO何时选择相关预测变量 ”的回答可能对您有所帮助。


1

我认为应该在机器学习中检查多重共线性。原因如下:假设您在我们的数据集中有两个高度相关的要素X和Y。这意味着响应平面不可靠(数据中的微小变化可能会对响应平面的方向产生巨大影响)。这意味着该模型对数据的预测指向很远的地方从X和Y趋于下降的那条线来看,是不可靠的。如果将模型用于此类点的预测,则预测可能会非常糟糕。换句话说,当您具有两个高度相关的特征时,作为一个模型,您正在学习一个平面,实际上数据大部分位于一条直线上。因此,重要的是从数据中删除高度相关的功能,以防止模型不可靠和预测错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.