多重共线性与主成分分析
多重共线性
1.什么是多重共线性
在进行线性回归分析时,容易出现自变量(解释变量)之间彼此相关的现象,我们称这种现象为多重共线性。(适度的多重共线性不成问题,但当出现严重共线性问题时,会导致分析结果不稳定,出现回归系数的符号与实际情况完全相反的情况。本应该显著的自变量不显著,本不显著的自变量却呈现出显著性,这种情况下就需要消除多重共线性的影响。)
2.多重共线性出现的原因
前提话:
多重共线性问题就是指一个解释变量的变化引起另一个解释变量的变化。原本自变量应该是各自独立的,根据回归分析结果能得知:哪些因素对因变量Y有显著影响,哪些没有影响。如果各个自变量x之间有很强的线性关系,就无法固定其他变量,也就找不到x和y之间真实的关系了。
其它原因还包括:
1.数据不足。(在某些情况下,收集更多数据可以解决共线性问题)
2.错误地使用虚拟变量。(比如,同时将男、女两个虚拟变量都放入模型,此时必定出现共线性,称为完全共线性)
3.自变量都享有共同的时间趋势
4.一个自变量是另一个的滞后,二者往往遵循一个趋势
5.由于数据收集的基础不够宽,某些自变量可能会一起变动
3.多重共线性的判别标准与方法
方法一:
回归分析中的VIF——方差扩大因子(variance inflation factor)值,VIF值越大,多重共线性越严重。一般认为VIF大于10时(严格是5),代表模型存在严重的共线性问题。有时候也会以容差值作为标准,容差值=1/VIF,所以容差值大于0.1则说明没有共线性(严格是大于0.2),VIF和容差值有逻辑对应关系,两个指标任选其一即可。
方法一的操作:
在Stata中计算各自变量VIF命令:estat vif(注意在回归结束后使用)
方法二:
直接对自变量进行相关分析,查看相关系数和显著性也是一种判断方法。如果一个自变量和其他自变量之间的相关系数显著,则代表可能存在多重共线性问题。(相关性分析,相关系数高于0.8,表明存在多重共线性;但相关系数低,并不能表示不存在多重共线性)
方法三:
发现系数估计值的符号不对
方法四:
某些重要的解释变量 t 值(SPSS中T的数值对回归参数的显著性检验值)低,而R²不低
方法五:
当一不太重要的解释变量被删除后,回归结果显著变化
4. 多重共线性的影响
总结:共线性会导致回归参数不稳定,即增加或删除一个样本点或特征,回归系数的估计值会发生很大变化。
(因为某些解释变量之间存在高度相关的线性关系,XTX会接近于奇异矩阵,即使可以计算出其逆矩阵,逆矩阵对角线上的元素也会很大,这就意味着参数估计的标准误差较大,参数估计值的精度较低,这样,数据中的一个微小的变动都会导致回归系数的估计值发生很大变化)
对模型的影响分为以下几点:
1.回归模型缺乏稳定性。样本的微小扰动都可能带来参数很大的变化;
难以区分每个解释变量的单独影响;
2.参数的方差增大;
3.变量的显著性检验失去意义;
4.影响模型的泛化误差。
5. 多重共线性处理方法
总结:多重共线性是普遍存在的,通常情况下,如果共线性情况不严重(VIF<5),不需要做特别的处理。如存在严重的多重共线性问题,可以考虑使用以下几种方法处理:
第一种方法:
手动移除出共线性的变量
先做相关分析,如果发现某两个自变量X(解释变量)的相关系数值大于0.7,则移除掉一个自变量(解释变量),然后再做回归分析。此方法是最直接的方法,但有的时候我们不希望把某个自变量从模型中剔除(我们比较注重研究的关心变量),这样就要考虑使用其他方法。
第二种方法:
逐步回归法
总结:让系统自动进行自变量的选择剔除,使用逐步回归分析将共线性的自变量自动剔除出去。此种解决办法有个问题是,可能算法会剔除掉本不想剔除的自变量,如果有此类情况产生,此时最好是使用岭回归进行分析。
逐步回归法的讲解:
推荐向后逐步回归方法
第二种方法的操作:
这里推荐向后逐步回归(stata中):
stepwise regress y x1 x2 … xk,pr(#1)
这里在注意中,自变量之间不能有完全多重共线性(多指若有虚拟变量,需要手动去除)
这里举例说明出现完全多重共线性的报错,并演示正确的代码:
stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3, r pr(0.05)
这里r取了稳健的标准误
得出的结果如下图所示:
所显示removing为剔除的造成多重共线性变量
剩下的在表格中显示的变量为显著的数据
逐步回归算法的最终说明:
注释:在(2)中,数模可以不太考虑内生性,内生性太复杂
在(3)中更加优秀的筛选方法为全局筛选,但这种筛选方式不现实
插入一个小片段:多重共线性和完全共线性的区别
总结:多重共线性和完全共线性(又称完全多重共线性,严重多重共线性)不一样。
其区别在于:
举个例子:
对于完全多重共线性的一个鲜明的例子:虚拟变量(的重复)
即为完全多重共线性
关于完全多重共线性的理论公式推导:
特征值大于0,矩阵一定可逆
多重共线性的详细公式理论阐述:
https://zhuanlan.zhihu.com/p/113417006
其中有涉及到MLR.3,其为高斯—马尔可夫定理(给定经典线性回归的假定下,最小二乘估计量是具有最小方差的线性无偏估计量的这一定理),如下链接和图片可以深究:
还有一篇讲解的多重共线性比较好:
https://blog.csdn.net/weixin_45449414/article/details/109368193
第三种方法:
增加样本容量
增加样本容量是解释共线性问题的一种办法,但在实际操作中可能并不太适合,原因是样本量的收集需要成本时间等
第四种方法:
岭回归
上述第一和第二种解决办法在实际研究中使用较多,但问题在于,如果实际研究中并不想剔除掉某些自变量,某些自变量很重要,不能剔除。此时可能只有岭回归最为适合了。岭回归可以减小参数估计量的方差,是当前解决共线性问题最有效的解释办法。
总结:岭回归是一种改良的最小二乘法,其通过放弃最小二乘法的无偏性,以损失部分信息为代价来寻找效果稍差但回归系数更符合实际情况的模型方程。针对共线性的病态数据,岭回归的耐受性远强于普通线性最小二乘法回归。
第五种方法:
主成分分析(PCA)全称Principal Component Analysis
PCA简介:主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间
互不相关,其能反映出原始数据的大部分信息。一般来说,
当研究的问题涉及到多变量且变量之间存在很强的相关性时(言外之意可以解决多重共线性的问题),我们可考虑使用主成分分析的方法来对数据进行简化。
其主要研究的问题为:
1.变量过多难以分析,且有些变量的作用不是必要的
2.变量过多造成的多重共线性问题
此算法问题的引出:
变量太多,会增加分析问题的难度与复杂性,而且在许多实际问题中,多个变量之间是具有一定的相关关系的,可以用主成分分析法通过较少的新变量代替原来较多的旧变量,而且使这些较少的新变量尽可能多地保留原来变量所反映的信息
其作用在于:主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法。
从数学角度来看,这是一种降维处理技术
拓展:数据降维的作用:
主成分分析的思想如下图片展示:(推导这里不过分阐述,详情见书与视频)
PCA的操作与计算步骤(重要,需要写入论文)
步骤一:
注释:此处首先对其进行标准化处理,使用的是Z标准化(也叫Z-Score标准化)(样本值减去列平均值再除以标准差),保持列(指标)不变,对列进行处理,详情见标准化与归一化word文档
步骤二:
注释:此处继续处理标准化后的矩阵,对列处理求协方差
这一块的皮尔逊相关系数其实就是概率论课本中的随机变量x与y的相关系数(介于-1与1之间)
步骤三:
步骤四:
步骤五:
一般取累计贡献率超过80%(或90%)的特征值的前几个主成分
注释:特征向量作为系数与指标进行线性组合
根据系数分析主成分代表的意义:对于某主成分来说,指标前系数越大(系数为),代表该指标对于该主成分影响越大
注意:利用主成分结果对后续进行分析时:
1.主成分得分不可用于评价类模型
2.主成分可用于聚类分析(方便画图)
3.主成分也可用于回归分析(处理多重共线性)
举例:
对于原始数据,列为指标,行为样本,放入PCA.m代码中运行,得到如下:
中途得到样本相关系数矩阵如下:
注释:得到的相关系数不用看其显著性,只是为了降维
Matlab中corrcoef函数可以得到相关系数矩阵的计算
因为降维是对指标进行降维,所以样本相关系数矩阵是指标与指标之间的比较与运算
最后可以附上贡献率柱状图和累计贡献率折线图,使用pareto()函数对贡献率向量处理,得到如图所示:
修改为如图:
以下内容为清风所讲,可以直接使用主要的成分(指标),不用对其进行解释(即自己认为哪些指标重要就放在前面,进行PCA处理时得到的结果只能说明取几个主成分,因为指标列变换是变化的只有特征向量矩阵,解释的说法有变化,而累计贡献率和贡献率是从大到小的排列,是不会变化的)
依照特征向量矩阵进行新指标名称的命名与含义的解释(主成分分析的核心解释要到位),例如:
例一:
例二:
主成分分析的说明:
模糊性是线性组合的结果
使用主成分聚类参考清风课件,这里不再详细阐述
最后的说明:
小补充:
协方差:引用概率论书上解释
表示两个变量X与Y之间的相关性,描述两者的相互关系
协方差官方文档:
协方差的意义:
在概率论中,两个随机变量X与Y之间相互关系分为三种关系:
第一种关系:正相关(当 X, Y 的联合分布像下图那样时,我们可以看出,大致上有: X 越大 Y 也越大, X 越小 Y 也越小,这种情况,我们称为“正相关”)
第二种关系:负相关(当X, Y 的联合分布像下图那样时,我们可以看出,大致上有:X 越大Y 反而越小,X 越小 Y 反而越大,这种情况,我们称为“负相关”)
第三种关系:不相关(当X, Y 的联合分布像下图那样时,我们可以看出:既不是X 越大Y 也越大,也不是 X 越大 Y 反而越小,这种情况我们称为“ 不相关”)
对以上图的解释:
注:本文引用清风建模学习课程资料,如有详细了解,可以关注清风建模课程与公众号
- 点赞
- 收藏
- 关注作者
评论(0)