(文末有赠书福利)
在数据挖掘项目中,经常会遇到的情况是有很多特征可以用,这是一件好事,但是有的时候数据中存在很多冗余情况,也就是说数据存在相关性或者共线性。在这种情况下对于分析带来了很多麻烦。不必要的特征太多会造成模型的过于复杂,共线性相关性会造成模型的不稳定,即数据微小的变化会造成模型结果很大的变化。主成分分析是解决这种问题的一个工具。
一、概述
主成分分析简称PCA,PCA是一个很好的预处理工具,用于挑选最相关的变量线性组合,并在我们的预测模型中使用它们。PCA帮助我们找出解释数据中变化最大的变量。PCA也是解决数据间存在共线性问题的一种方式。
PCA的唯一缺点是它以无监督的方式生成主成分,也就是与数据的标签没有任何关系。如果最终的目的是构建模型的话,选出来的主成分不一定对于标签或者说因变量有很好的预测能力。在本章节会介绍PCA的一些基本概念,并且使用R语言进行实现。
1. 维度相关的问题
有两个因素会使得数据的维度变得非常高。首先,具有不同级别的分类变量,其次是数据集中的冗余变量。当我们在建模中包含分类变量时,我们使用虚拟变量,并且分类变量中的级别数越多,我们创建的虚拟变量就越多,这会增加维度。冗余变量代表数据集中的信息不够精简,多个特征描述了同一信息,例如,数据集中有三个特征,收益,成本,利润率,这三个特征就存在冗余,因为第三个特征是通过前两个特征生成的,因此可以删除掉冗余特征。
多重共线性(共线性)可以定义为回归模型中的两个或更多个变量高度相关的现象,这意味着,模型数据中存在一定的冗余。
变量之间存在冗余变量和多重共线性可以以多种方式影响变量的分析,其中一些在下面例子:
• 破坏参数估计的稳定性。
• 混淆模型解释。
• 增加过度拟合的风险。
• 增加计算时间。
输入数据的微小变化(如删除或添加单个变量)会导致模型发生较大变化,甚至导致参数符号更改。此外,多重共线性的存在增加了系数估计的方差或标准误差,使其对微小变化敏感,从而导致解释困难。
当我们讨论数据集的最佳回归模型时,这意味着模型会考虑预测变量,其中每个预测变量与目标/因变量相关,但相互之间几乎没有关联。这种模型被称为低噪声模型,具有很强的鲁棒性。如果变量本身之间的相关性很高,并且我们在训练数据集上获得了很高的预测能力,那么我们可能无法实现在测试数据集上相同。
2.检测多重共线性
在了解了多重共线性如何影响我们的分析和模型的预测能力之后,学习如何检测数据中多重共线性的存在非常重要。
以下方法可用于检测多重共线性:
• R平方值很大,但没有β重量统计上显着的,即整体模型的F检验是显着的,但个体系数估计的t检验不是。
• 变量对之间的相关性很大。
• 差异通货膨胀因素。
3. 方差膨胀因子
在检测多重共线性时提到的一点是,变量对之间的相关性很大,但有时只关注预测变量对之间的相关性可能是一个限制因素。
成对相关可能很小,但三个或更多变量之间存在线性相关。例如,X1,X2和X3之间的关系由线性方程定义,例如:X3 = 3X1 + 4X2 +Error。对于这种情况,我们使用方差膨胀因子。
VIF衡量估计回归系数的方差,可以通过模型中预测变量之间相关性的存在来夸大。如果VIF的值> 10,则表明变量之间存在一些严重的相关性。
我们不会讨论VIF的数学推导。 VIF的公式为:
预测变量“k”的VIF是通过对剩余预测变量上的第k个变量进行回归来计算R平方值而获得的。
多重共线性与高纬度的补救措施包括如下:
• 检查其中一个变量是否重复。
• 删除冗余变量。
• 通过收集更多数据来增加样本量。
• 平均中心预测变量。
• 预测变量的标准化 - 如果均值中心没有影响。
• 主成分分析,岭回归,偏最小二乘回归。
在本文档中,我们将借助示例讨论主成分分析。