一句话定义:多重共线性(Multicollinearity)是指模型输入的多个特征之间存在很强的线性关系,也就是某个特征能被其他特征近似地相加或相减拼出来,等于几个变量在重复表达同一件事。
问题出在“分清谁在起作用”这一步
线性模型估计系数时,要回答的是一个对比问题:当 A 变化、B 保持不变时,结果会怎么变。可如果 A 和 B 总是同进同退,数据里根本不存在“A 变了、B 没变”的样本,模型只能靠噪声去猜。于是系数会变得又大又不稳定:多采几十行数据、换个随机种子,系数的符号都可能翻转。预测值有时照样准,因为几个大系数互相抵消了;但“哪个特征更重要”这个结论已经不可信。
比较直观的例子是把“体重(公斤)”和“体重(磅)”同时放进模型。信息完全重复,模型没有理由偏向哪个,重要性就被随意对半分。换成“房间数”和“房屋面积”这种不完全重复的组合更危险:系数会被放大甚至反号,业务方看到“面积越大、房价越低”这种荒唐结论。
树模型也不一定逃得掉。随机森林(Random Forest)、梯度提升树每次分裂都会从候选特征里挑一个,高度相关的特征会轮流被选中,最终重要性被“摊薄”,看起来每个都不太重要。
和相邻概念的区别
| 概念 | 说的是什么 | 常见判据 | 典型后果 |
|---|---|---|---|
| 多重共线性 | 多个特征之间存在近似线性关系 | 方差膨胀因子(VIF)、设计矩阵条件数 | 系数不稳定,重要性排序失真,预测精度未必下降 |
| 相关性 | 两个变量之间的线性关联强度 | 相关系数 | 只是线索之一,两两相关不等于整体共线 |
| 完全重复特征 | 一个特征是另一个的确定性函数 | 业务与字段核对 | 信息冗余,重要性被随意分摊 |
| 过拟合 | 模型把训练集噪声也学了进去 | 训练集与验证集表现差距 | 泛化变差,和共线性是两回事 |
对实际工作的意义
如果只关心预测准不准,共线性往往可以先不处理,交给岭回归(Ridge Regression)这类正则化方法把系数稳住即可。但如果要做归因、做策略、回答“提高哪个指标最能提升转化”,就必须先处理:合并冗余特征(身高体重合成 BMI)、删掉业务上可舍弃的那个、或用主成分分析(Principal Component Analysis, PCA)压成互相正交的维度,代价是新维度失去业务含义。常用工具库都有 VIF 的现成实现,具体用法以官方文档为准。
给普通职场人的提醒很简单:看到“某因素影响巨大”或“某因素毫无作用”的模型结论,先问一句:这几个变量,是不是其实在说同一件事?
