楼主: 滨滨有利123
1149 2

[数据挖掘理论与案例] 远离复杂公式推导,直接解决共线性 [推广有奖]

  • 0关注
  • 30粉丝

副教授

24%

还不是VIP/贵宾

-

威望
0
论坛币
198 个
通用积分
25.4545
学术水平
1 点
热心指数
2 点
信用等级
0 点
经验
9596 点
帖子
328
精华
0
在线时间
381 小时
注册时间
2015-4-26
最后登录
2023-9-23

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

本文的研究对象在于模型开发过程中,关于相关性与共线性的梳理;并且基于目前相关性与共线性的情况,跟各位读者分享共线性的处理方法。



最近有同学跟我们交流,怎么确定变量间的线性问题。我曾经跟一些做机器学习的同学讨论,在他们那里是不太注重变量间的线性问题的。因为有些算法是非线性模型,不需要考究具体的算法。但是在逻辑回归的算法里,变量间的线性问题,仍需要解决,在入模前需要进行变量间线性的确诊。


一.相关性与多重共线性原理


在线性问题中,我们需要搞清楚变量的相关性和共线性。其中相关性是两两变量之间的问题,共线性是多变量之间的问题。


OK,因为网络上有太多关于逻辑回归中关于线性的转化公式了:

ln{P/(1-P)}=ax1+bx2+cx3...+z

可以发现在具体的转换后,每个维度都成为了一项能具体影响模型的Y值。所以在该算法中,处理每个变量间的线性相关就显得很重要了。

关于多重共线性的具体原理,本文也不详细涉及,但从VIF的公式中可知:

VIFi=1/(1-R2i)

(以上:VIF是衡量共线性的指标,当VIF很大时,表明自变量间存在多重共线性


vif就是R的平方与1作差的倒数,基于这样的定义,我们猜测vif就是某种意义相关性的综合指标。而实际上也是这样的,比如我们研究这样的一个等式中:

Y=aX1+bX2+cX3

要研究X2、X2、X3之间的共线性,我们会先进行一个线性的辅助回归,让X1、X2、X3,轮流坐庄,求出每一个方程的R的平方。什么叫轮流坐庄,就是该方程变换成:


X1=aX2+bX3..............I

      X2=aX1+bX3.............II

X3=aX1+bX2............III

各位读者可以发现上述没有Y,只有X. 根据上述的等式,依次算出每个等式的R平方,再算出来具体的vif值。


具体的相关性跟共线性的原理推到,本文怕把各位读者绕晕,先不进行讲解,我们直接来使用相关的指标。


进行模型的相关性跟共线性的检验,相关代码如下:

1.jpg


其中在相关性达到0.7的以上,一般表示模型变量间有相关性;

而关于共线性的就稍微复杂一些,我们会这样来分析指标:这里我们引入条件指数和膨胀方差的这两个指标。


膨胀方差(the variance inflation factor,VIF)诊断法:方差膨胀因子表达式为:VIFi=1/(1-R2i)。其中Ri为自变量xi对其余自变量作回归分析的复相关系数。当VIFi很大时,表明自变量间存在多重共线性。该诊断方法也存在临界值不易确定的问题,在应用时须慎重。


条件指数(condition indices)定义为:最大特征根与每个特征根比值的平方根。特征根(Eigenvalue)越接近零,共线性越大。条件指数等于最大的主成分与当前的主成分的比值的算术平方根,所以第一个主成分对应的条件指数总为1。同样,如果几个条件指数较大(如大于10/20/30),则提示可能存在多重共线性。


二.实际处理的案例

在具体的实操界面,我们可以根据以上方法求出具体的的共线性指标,进行分析,根据本人经验总结,为各位读者分享以下心得:


1.普遍讲当膨胀方差因子达到10以上的时候,该变量较有共线性的嫌疑;比如在下图中,红色框中列出来的一些变量都具有共线性;


2.当条件指数大于10以上的时候,去查看相关系数达到0.5以上的变量,也较有共线性嫌疑,并且将此时的值跟第一条求出值进行比对,会发现具体的变量是一致的,第2个图片的指标是对第一张图片指标的充分补充;


3.共线性的指标在以上基础上数值越大,该变量间的共线性越严重;


4.以上1跟2成立的基础都是数据量不是特别大的情况下的普遍用法,当数据量达到一定程度,如上百/千万条数据量级别时,膨胀因子达到2以上,就有共线性的,所以具体的条件指数跟膨胀因子的数值仍跟数据量有较大关系。


关于使用的说明,大家可以将以下图片跟以上文字结合理解:

2.jpg

3.jpg
三.多重共线性的处理方法:最后再将处理共线性的方法介绍给各位,可能还不完整,后续有机会再补充
1.逐步回归法
运用逻辑回归中的逐步回归法,因为在模型拟合的过程中,逐个引入自变量,引入的条件是该自变量经F检验是显著的,每引入一个自变量后,对已选入的变量进行逐个检验,如果原来引入的变量由于后面变量的引入而变得不再显著,那么就将其剔除。并且变量在检验的时候,我们会再观察模型结果中的P值和F值。跟算法工程师了解过,机器学习中运用这类算法,很多不考虑共线性时因为运用了这个方法去筛选变量,从而省去了前面一步做共线性的步骤。
2.删除不重要的自变量删除不必要的变量,保留部分更符合业务逻辑的变量,这里各位可以结合IV值进行变量的筛选;但对剔除的变量需要充分有把握,不然删除的变量会影响模型结果;

3.可以做主成分回归
该分析方法是对多个变量综合提取新的变量后,运用的方法,在变量的降维中也经常使用这个方法。不过这个方法在其他机器学习中使用较多。当采取主成分提取了新的变量后,往往这些变量间的组内差异小而组间差异大,从而起到了消除共线性的问题。
最后关于多重共线性,各位同学可以参阅在知识星球上的这份文档,里面对这部分的内容解释更详细些,请上去查阅,谢谢! 44.jpg

5.jpg



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
滨滨有利123 发表于 2019-11-12 20:29:19 |只看作者 |坛友微信交流群
原文链接:https://mp.weixin.qq.com/s/ELdmRUGOLwTx5yhiMNlImQ

使用道具

藤椅
阿扁V5 学生认证  发表于 2019-12-17 18:23:32 |只看作者 |坛友微信交流群

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 22:19