一、背景
共线性问题是困扰模型预测能力的一个问题。在数据分析面试的时候也经常会出现关于共线性问题的面试考点。
二、共线性描述
2.1 何为共线性
共线性又叫做多重共线性,是指自变量之间存在较强的,甚至完全的线性相关关系。
影响:当自变量之间存在共线性时,模型的参数会变得极其不稳定,模型得预测能力会下降。很难确切区分每个自变量对因变量得影响,因此增加了对于模型结果得解释成本。
因此,在建模前期得变量得筛选环节,就需要采取有效措施避免共线性问题。
但在实际的问题中,自变量之间除了存在共线性问题之外,完全可能存在其他各种非线性关系,这些非线性关系也可能如同共线性一样影响模型的预测能力。但是我们无法完全掌握这些非线性关系,所以只能以考察他们之间的线性关系为基础来排除一些主要的线性关系的变量。
2.2 如何发现共线性
A. 皮尔逊相关系数:pearson correlation
R=x与Y的协方差/X的标准差与Y的标准差的乘积
线性相关系数的取值范围为[-1,1]
|r|<0.3表示低度线性相关
0.3=<|r|<=0.5,表示中低度线性相关
0.5=<|r|<0.8,表示中度线性相关
0.8=<|r|<1,表示高度线性相关
PS:即使有时候r=0,也只能只能排除变量间不存在相关系数,不能排除变量之间不存在其他的相关关系,比如曲线关系。
B.通过模型结论的观察
如:如果回归模型中,回归系数的标准差过大,就有可能存在共线性问题
C.PCA 降维处理
D.根据业务经验来判断
原本没有预测作用的变量突然变得具有很强的统计性,有可能隐藏着共线性问题。
E.对变量进行聚类
通过对连续型变量进行聚类,同一类中的变量之间具有较强的相似性,可能隐藏着共线性问题。
2.3 如何处理共线性
轻微的共线性是可以隐忍的,比如在模型的拟合度比较高,样本量比较大的时候。但是当样本量较少,轻微的共线性问题会导致模型不稳定,因此需要对共线性问题做出处理。
对相关变量进行取舍。高度共线性的相关变量,可以选择保留对业务方最有价值,最有意义的变量,过滤掉相关变量。
最相关性变量进行组合,生成一个新的变量。
尝试对相关变量做出一些形式的转换(数据转换)
三、数据的转换
数据转换是数据分析一种数据处理技术,由于原始数据可能存在分布不光滑,不对称,有噪声,使得模型的稳定性不好。因此数据转换可以提高模型的效果。常用的数据转换的技术有
- 产生衍生变量
- 改善变量分布特征的转换
- 区间型变量的分箱转换
- 针对区间型变量进行标准化操作
1.生成衍生变量
通过对原始数据进行简单,适当的数学公式推导,产生更加具有商业意义的变量。比如在对用户点击行为进行分析的时候,可以用用户点击广告的数量处于广告投放的用户数量得到一个新的变量点击率。点击率就要比原始的点击量更加具有商业价值。在数据分析的时候,常见的衍生变量依赖于对数据分析业务的熟悉程度于对分析思路的理解。
2.改善变量分布的转换
在实际的数据分析中,大多数区间型变量原始分布转态偏差较大,且严重不对称。这些数据出现在特征变量中会干扰模型的拟合,影响模型的预测效果。如果通过各种数学转换使得自变量的分布呈现出或近似正太分布,那么模型的拟合会有明显的提升。
常见的改善数据分布的措施如下:
- 取对数
- 取倒数
- 取指数
- 开平方根
- 开平方
缺点:转换后的部分变量的业务逻辑难以解释;
3.分箱转换
分箱转换就是把区间型的变量转换为次序型的变量。目的降低变量的复杂性,简化数据。提升自变量的预测能力。(可以有效提升自变量于因变量的相关性,尤其是当自变量于因变量之间有比较明显的非线性关系,分箱操作可以发现这些相关性。
例子:有一组用户的年龄,原始数据是区间型的,从20岁到80岁,每一岁都是一个年龄段;此时通过分箱转换,每20岁构成一个年龄组,就可以有效简化数据。
4.数据标准化
数据标准化转换的目的是将数据按照比例进行缩放,使之落入一个小的区间范围内(默认为0,1)区间,使得不同变量经过标准化处理后可以有平等的分析于比较的基础。
最简单的数据标准化转换是Min_Max标准化,也叫离差标准化。是对原始数据进行线性变换,使得结果落在0,1区间。转换公式:
x=x-min /max-min*
转载自:
https://zhuanlan.zhihu.com/p/136780426