如何处理大量共线变量?

数据挖掘 Python scikit-学习 特征提取
2022-02-12 21:06:22

我有这个具有 63 个特征的时间序列数据集,其中 57 个是手动设计的。在检查共线性时,我得到了这个相关矩阵: 共线图 可以看出有许多变量是相关/共线性的。深红色的当然需要去除,但是蓝色范围内的呢?这些变量(在共线性的负范围内)如何影响回归模型?

此外,我从sklearn.feature_extraction模块中运行了一个递归特征提取过程,它向我推荐了 39 个最好的特征(在默认设置下)。RFE 是处理此类功能时的最佳策略吗?

1个回答

首先,如果您要对时间序列进行回归,则必须检查自相关,否则您的 p 值和显着性检验将非常不准确。此外,如果您不考虑自相关,您将获得的 R^2 值将严重误导。

其次,如果您使用滞后变量,它们中的许多变量很可能是相关的。

共线性通过使模型难以确定哪个系数导致对因变量的影响来影响线性回归模型。结果是,在高度共线的变量之间,您将有不准确的 p 值和非常小的系数,甚至是带有错误符号的系数。

当您将其中一些变量用作控制变量或不太关心解释时,可以忽略多重共线性;此外,当感兴趣的变量不共线时,共线性无关紧要。

交叉验证也有很多关于回归的很好的讨论。