8.7 共线性问题

共线性问题是困扰模型预测能力的一个常见问题。所谓共线性,又叫多重共线性,是指自变量之间存在较强的,甚至完全的线性相关关系。当自变量之间高度相关时,模型参数会变得不稳定,模型的预测能力会降低。同时,严重的共线性增加了对于模型结果的解释成本,因为它致使很难确切分辨每个自变量对因变量的影响。所以,在建模前期的变量筛选环节,就要对共线性问题引起足够的重视,并采取有效措施尽量加以避免。

需要强调的是,理论上来讲,输入变量之间除了存在共线性之外,完全可能存在其他各种非线性的关系,这些非线性的关系也很可能如共线性一样影响模型的预测能力。但是,我们无法完全掌握这些非线性关系,所以,只能以考察它们之间的线性关系为基础来排除一些主要的线性关系的变量。

8.7.1 如何发现共线性

常见的识别共线性的方法如下:

❑相关系数的方法。最常见的就是皮尔逊相关系数(Pearson Correlation),详细内容请参考8.6.3节,对于线性相关指标的详细讨论。

❑通过模型结论的观察。比如,在回归模型中,如果回归系数的标准差过大,就可能意味着变量之间存在着共线性问题。

❑主成分分析方法。在主成分分析方法中,主成分里的系数,也就是主成分载荷大小能从一定程度上反映出各个变量的相关性。比如,第一主成分中,某几个原始变量的主成分载荷系数较大,且数值相近,就有可能在其中隐藏着共线性问题。

❑根据业务经验判断的原本应该没有预测作用的变量突然变得有很强的统计性,那其中就有可能隐藏着共线性问题。

❑对变量进行聚类。通过对区间型变量进行聚类,同一类中的变量之间具有较强的相似性,也就可能隐藏着共线性问题。

8.7.2 如何处理共线性

水至清则无鱼,人至察则无徒,对于数据挖掘实战中出现的共线性问题,也需要本着中庸之道灵活处理。轻微的共线性是可以容忍的。比如说模型拟合度较高,样本量大的时候,轻微的共线性可以适当的采用视而不见的方法。但是,当样本量较少,很轻微的共线性问题都有可能导致参数的不稳定。如果发生严重的共线性问题,一般采取以下措施:

❑对相关变量进行取舍。高度共线性的相关变量,可以选择保留对业务方最有价值、最有意义的变量,而过滤掉相关变量。

❑对相关变量组合,生成一个新的综合性变量。

❑当我们利用相关变量通过线性的方式衍生出新的变量时,要记得两者之间的共线性问题,并且及时删除相关的原始变量,不要将其投入到模型中。在实践应用中这种情况会经常出现,也很容易被人忽视。

❑尝试对相关变量进行一些形式的转换(参考8.5节),恰当的转换可以在一定程度上减少甚至去除共线性关系。