一文读懂 主成分分析 与 因子分析(一)

简介: 一文读懂 主成分分析 与 因子分析

目录

一、 主成分分析

二、因子分析

三、多元共线性问题简介

3.1 多元共线性简介

3.2 多元共线性的产生

3.21 由变量性质引起

3.22 由数据问题引起

3.3 多元共线性的影响

3.4 多元共线性在应用中的表现

3.5 如何解决多元共线性问题

四、附因子分析案例

4.1 案例示例

4.11 案例数据

4.12案例操作

4.13 输出结果

4.14注意事项


结论: 因子分析与主成分分析是包含与扩展的关系。


  为了能够充分有效的利用数据,化繁为简是一项必做的工作,希望将原来繁多的描述变量浓缩成少数几个新指标,同时尽可能多的保存旧变量的信息,这些分析过程被称为数据降维。主成分分析和因子分析是数据降维分析的主要手段。另一种化繁为简的手段是聚类。


一、 主成分分析

引言:大家都学过线性代数,极大线性无关组的概念想必都很清楚,简单复习一下:一个向量组由多个列向量(或行向量)组成,但组成它的这些列向量之间可能存在某些线性关系(比如有一个列向量是另一个列向量的2倍),那么这样的向量组是不是显得有点臃肿呢?我们对这个向量组进行一些变换(如正交变换)得到一个新的向量组(称为原向量组的极大线性无关组),这个新向量组的列向量个数比原向量组的列向量数量更少,且各个列向量之间线性无关,且原向量组的每一个列向量都可以由这个无关组的向量线性表示。那么,这个极大无关组就可以代表原来的向量组。


  同样的,主成分分析与之有相似的思想,当我们对某个对象进行研究时,往往会收集到与研究对象相关的很多项指标,这些指标之间可能有重复、包含的关系,那么如何对多维的数据进行简化呢?下面就是主成分分析(PCA)要做的事情了。


  主成分分析可以简单的总结成一句话:数据的压缩和解释。常被用来寻找判断某种事物或现象的综合指标,并且给综合指标所包含的信息以适当的解释。


  在实际的应用过程中,主成分分析常被用作达到目的的中间手段,而非完全的一种分析方法。这也是为什么SPSS软件没有为主成分分析专门设置一个菜单选项,而是将其归并入因子分析。我们可以先了解主成分分析的分析模型。

ce8eff770a43fc460ddf994978de1370_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oSf6LCi5Zyw5b-D5byV5Yqb,size_16,color_FFFFFF,t_70,g_se,x_16#pic_center.png

    上面这幅图经常被用来形象地解释主成分分析的原理。图中原来有两个坐标轴X1 和X2 ,从散点分布可以很明显的知道散点在这两个坐标轴内存在线性相关关系。

    如果将这些散点在坐标轴X1 和 X2上的取值自变量 x 1  和 x 2 纳入到各种回归模型中(也就是说把这些点在原来坐标系下的坐标值带入到模型中去),将会由于它们的多元共线问题(第三节有讲)致使拟合结论出现偏差。那么如何处理才能避免呢?

   这里给大家强调,统计学上数据信息往往指的是数据变异(数据波动)。在上图中,散点的分布构成了一个椭圆形点阵,在椭圆的长轴方向,数据波动明显大于短轴方向。此时如果沿着椭圆的长轴和短轴方向设定新的坐标轴(F1和F2)组成坐标系,那么新坐标系可以完全解释数据散点的信息,散点在新坐标轴上的取值就形成两个新的变量(f1 和 f2),这两个新变量之间是相互独立(不相关)。


    从散点图上还可以知道,长轴和短轴能够解释的数据信息是不同的,长轴变量携带了大部分数据的变异信息,而短轴上的变量只携带一小部分变异信息。此时只需要使用长轴方向上的新变量(f1)就可以代表原来两个变量(x1 和 x2)的大部分信息,达到降维的作用。


    主成分分析的这种坐标轴变化是通过将原来的坐标轴进行线性组合完成的。这个线性组合的过程涉及到线性代数部分的内容,这里不过多解释。


  假设描述对象(例如汽车)由 k 个自变量指标(油耗、车重、轴长、内饰等等)进行描述,因为这些指标很多都是相关的(重量与油耗),因此可以进行主成分分析,浓缩变量。经过坐标轴线性组合以后,可以形成下面的线性组合式子:

10c91983cbd7a825cfd504cd60a4f10.png

通过线性组合以后,主成分分析可以形成 k 个新变量。这里的线性组合大家可以理解成原来坐标轴的空间旋转,因此原来有多少变量(k 个),经过主成分分析以后,形成数量一致的新变量(k 个)。新变量之间的方差关系见下式,通常情况下,我们只许取前面几个即可。

         

   Var(f1)>Var(f2)>>Var(fk)


为什么只取前面几个呢? 举个例子:10辆汽车,每个汽车取 k个指标,通过前面的分析,现在形成了 k个新指标,这 k个新指标中,每辆汽车的第一个新指标取值之间相差很大,即方差大,那么说明这第一个新的指标可以用来评价者10辆汽车;而第 k个新指标,10辆汽车取值都差不多,即方差小,那这种指标就没了参考意义。这里的方差你也可以理解为数据变异的程度即波动的大小。 我们要对研究对象进行评价(区分或者排序),就是要研究那些变异大的指标。


前面说:对于新变量,我们通常只取前面几个,那么如何取舍呢?且看下文。


在主成分分析后,SPSS等软件会输出下面这个结果。包括特征根值,方差贡献率和累计方差贡献率。从表格结果可知,原来的变量数量是6个,经过矩阵的线性组合(正交变换)以后,形成了6个新成分,前面2个成分总共贡献了数据变异的73.2%,且特征根都大于1,因此提取了前面2个成分作为主成分

5f40162f52f9a59d07a3fcbc81803618_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oSf6LCi5Zyw5b-D5byV5Yqb,size_13,color_FFFFFF,t_70,g_se,x_16#pic_center.png

1.特征根是矩阵线性组合后的产物,可以看作主成分的重要性指标,代表引入该主成分后可以解释多少原始变量的信息。如果特征根小于1,说明该主成分的解释力度还不如直接引入一个原变量的平均解释力度大,因此一般可以用特征根大于1作为纳入标准。

2.方差贡献率表示该主成分的方差在全部方差中的比重。这个值越大,表明主成分解释数据信息的能力越强,它与特征根是正相关的,特征根越大,方差贡献率越大。

3.累计贡献率表示前面n个主成分累计提取了多少数据信息。一般来说,如果前k个主成分的贡献率达到85%,表明提取前面k个主成分就基本可以解释所有数据信息(最低70以上就可以接收,你或许可以增加提取的主成分的数量,但这会降低模型的可解释性,或者你再重新搜集、整理原始指标)。

     主成分分析的一个重要的结论是主成分矩阵,如下表所示。主成分矩阵可以说明各主成分在原来变量上的载荷,所以也被称为载荷矩阵。(载荷矩阵里面的系数代表该变量与该因子的相关性强弱,正、负相关,绝对值越大相关性越强)

6e687610a839fd00a1016aa62aad9df6_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oSf6LCi5Zyw5b-D5byV5Yqb,size_8,color_FFFFFF,t_70,g_se,x_16#pic_center.png

   通过载荷矩阵可以写出主成分的组成结构表达式。我们以第一主成分为例,写出其表达式。从式子可以知道,第一主成分包含原来变量1和变量2信息最多,3和5其次,4,6更少一些。这就是主成分分析的致命缺陷,提取出来的主成分不能明确解释成某几个原始变量的概率,为进一步分析制造了困难。(这个问题将由因子分析来解决)

                   F1=0.880X1+0.868X2+0.501X3+0.386X40.599X50.412X6

     主成分分析的另一个结论是主成分得分矩阵。其实就是主成分载荷矩阵除以主成分特征根后得到的矩阵。为什么要除以特征根呢?这是因为主成分载荷矩阵是带有成分重要性属性(包含特征根)的,如果要用提取得到的主成分进行综合排名比较或回归分析,需先要消除主成分的权重不平等(重要性不同),因此需要除以对应主成分的特征根,得到主成分得分矩阵。上表的主成分得分矩阵为:

35fdae7adc5a81d6fcf57259ae68206c_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oSf6LCi5Zyw5b-D5byV5Yqb,size_8,color_FFFFFF,t_70,g_se,x_16#pic_center.png

根据主成分得分矩阵的得分系数,就可以计算每个个案在新变量(主成分)上的数值。进而可以将新变量值用于综合评分和回归。


f1=0.358x1+0.353x2+0.204x3+0.157x40.244x50.168x6


f2同理

以上就是主成分分析的所有过程。可以通过矩阵变换知道原始数据能够浓缩成几个主成分,以及每个主成分与原来变量之间线性组合关系式。但是细心的朋友会发现,每个原始变量在主成分中都占有一定的分量,这些分量(载荷)之间的大小分布没有清晰的分界线,这就造成 无法明确表述哪个主成分代表哪些原始变量 ,也就是说提取出来的主成分无法清晰的解释其代表的含义。


二、因子分析

  鉴于主成分分析现实含义的解释缺陷,统计学斯皮尔曼又对主成分分析进行扩展。因子分析在提取公因子时,不仅注意变量之间是否相关,而且考虑相关关系的强弱,使得提取出来的公因子不仅起到降维的作用,而且能够被很好的解释。因子分析与主成分分析是包含与扩展的关系。


  首先解释包含关系。如下图所示,在SPSS软件“因子分析”模块的提取菜单中,提取公因子的方法很多,其中一种就是主成分。由此可见,主成分只是因子分析的一种方法。

48312e4febc586d1dfb615694f7e098b_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oSf6LCi5Zyw5b-D5byV5Yqb,size_11,color_FFFFFF,t_70,g_se,x_16#pic_center.png

其次是扩展关系。因子分析解决主成分分析解释障碍的方法是通过因子轴旋转(在SPSS软件中,旋转的方式有很多种,根据需要选择)。因子轴旋转可以使原始变量在公因子(主成分)上的载荷重新分布,从而使原始变量在公因子上的载荷两级分化,这样公因子(主成分)就能够用那些载荷大的原始变量来解释。以上过程就解决了主成分分析的现实含义解释障碍。

20be26d9e8284f28b94cd5bfa1926965.png

上面两个表是旋转后的成分矩阵和成分得分系数矩阵,这两个表的数值与主成分分析的结果已经完全不同。从左边的表可以明显知道,第一公因子主要由变量1、2、3(或仅有变量1)解释,第二公因子由变量5、6解释。右边表格的得分系数也不在是通过成分载荷/特征根得到,而是通过回归得出(因为因子分析在提取公因子时,不仅注意变量之间是否相关,而且考虑相关关系的强弱)。


Summarize:


  从以上内容可以知道,主成分分析和因子分析的关系是包含与扩展。当因子分析提取公因子的方法是主成分(矩阵线性组合)时,因子分析结论的前半部分内容就是主成分分析的内容,而因子旋转是因子分析的专属(扩展),主成分分析是因子分析(提取公因子方法为主成分)的中间步骤。这就是为什么很多软件没有专门为主成分分析独立设计模块的原因。从应用范围和功能上讲,因子分析法完全能够替代主成分分析,并且解决了主成分分析不利于含义解释的问题,功能更为强大。


三、多元共线性问题简介

这一节的内容你大致浏览一下就明白了,了解即可。


3.1 多元共线性简介

“多元共线”一词最早由R.佛里希于1934年提出,其最初的含义是指回归模型中的某些自变量是线性相关的,即对于出现在模型中的自变量有关系

0c0df3b836ccbdcb070bc4c95a9db9c.png

成立.其中常数km(m=1,2,…,n)不全为0.称为完全多元共线。

现在所说的“多元共线”有更广泛的含义,除包括完全共线性的情况,也包括变量间有某种关系但又不是十分完全的线性关系.如下式所示的情况

9afca257f0439266034369c8c0dbc5a.png

其中ε为随机误差项.此时可称为近似多元共线。


3.2 多元共线性的产生

3.21 由变量性质引起

在进行多元统计分析时,作为自变量的某些变量高度相关,比如身高、体重和胸围,变量之间的相关性是由变量自身的性质决定的,此时不论数据以什么形式取得,样本含量是大是小,都会出现自变量的共线性问题。因此,变量间自身的性质是导致多元共线性的重要原因。


3.22 由数据问题引起

(1)样本含量过小

假设只有两个自变量X1与X2,当n=2时,两点总能连成一条直线,即使性质上原本并不存在线性关系的变量X1与X2,由于样本含量问题产生了共线性。样本含量较小时,自变量容易呈现线性关系。


如果研究的自变量个数大于2,设为X1,X2,…,XP,虽然各自变量之间没有线性关系,但如果样本含量n小于模型中自变量的个数,就可能导致多元共线性问题。


(2)出现强影响观测值

进入20世纪80年代后期,人们开始关注单个或几个样本点对多重共线性的影响。研究表明,存在两类这样的数据点或点群:(1)导致或加剧多重共线性 (2)掩盖存在着的多重共线性。

52eb375ad007b3724d17e4aeae99c825_f054d6b6798d45eb86dde160d639b9a9.png

(a)中因异常观测值的出现而掩盖了共线性;

(b)中因异常观测值的出现而产生了共线性。这样的异常观测值称为多元共线性强影响观测值。显然这种观测值会对设计矩阵的性态产生很大影响,从而影响参数估计。


(3)时序变量


若建模所用的自变量是时序变量,并且是高阶单整时序变量,这种时序变量之间高度相关,必然导致多重共线性。


3.3 多元共线性的影响

以多元线性回归分析为例:采用最小二乘法(the Least Squares Method)对多元线性回归模型的偏回归系数进行估计。(大概介绍一下,不写数学过程了)


如果自变量存在完全多元共线性,无法利用最小二乘法估计偏回归系数。

如果自变量之间存在近似共线性,此时如果仍然采用最小二乘法,会使偏回归系数的估计值不稳定、不合理,严重影响回归模型拟合的效果。

3.4 多元共线性在应用中的表现

(1)模型拟合效果很好,但偏回归系数几乎都无统计学意义;

(2)偏回归系数估计值的方差很大;

(3)偏回归系数估计值不稳定,随着样本含量的增减各偏回归系数发生较大变化或当一个自变量被引入或剔除时其余变量偏回归系数有很大变化;

(4)偏回归系数估计值的大小与符号可能与事先期望的不一致或与经验相悖,结果难以解释。

出现以上表现,提示存在多元共线性问题,应进行多元共线性诊断。这里就不展开说了,已经偏离本文主题了。


3.5 如何解决多元共线性问题

1、从模型中删掉一个变量

2、获取额外的数据或新的样本

3、重新考虑模型

4、参数的先验信息

5、变量变换

6、岭回归

7、主成分回归

8、偏最小二乘回归

9、其它:神经网络、通径分析

相关文章
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
113 0
|
6月前
|
数据可视化
主成分分析PCA谱分解、奇异值分解SVD预测分析运动员表现数据和降维可视化
主成分分析PCA谱分解、奇异值分解SVD预测分析运动员表现数据和降维可视化
|
资源调度 算法 数据可视化
t_SNE 非线性降维基础原理
本文记录了个人关于 非线性降维算法 t-SNE(t-Distributed Stochastic Neighbor Embedding)的学习理解,以供参考学习
268 0
|
数据可视化 Linux
PCA分析基本知识和数学原理
PCA分析基本知识和数学原理
|
算法 数据挖掘 数据格式
一文读懂 主成分分析 与 因子分析(二)
一文读懂 主成分分析 与 因子分析
|
机器学习/深度学习 人工智能 数据挖掘
【机器学习】主成分分析(PCA)——利用特征值分解(EVD)(理论+图解+公式推导)
【机器学习】主成分分析(PCA)——利用特征值分解(EVD)(理论+图解+公式推导)
312 0
【机器学习】主成分分析(PCA)——利用特征值分解(EVD)(理论+图解+公式推导)
|
机器学习/深度学习 人工智能 移动开发
【机器学习】线性分类——高斯判别分析GDA(理论+图解+公式推导)
【机器学习】线性分类——高斯判别分析GDA(理论+图解+公式推导)
362 0
【机器学习】线性分类——高斯判别分析GDA(理论+图解+公式推导)
|
机器学习/深度学习 人工智能 资源调度
【机器学习】线性回归——最小二乘法的概率解释高斯噪声(理论+图解+公式推导)
【机器学习】线性回归——最小二乘法的概率解释高斯噪声(理论+图解+公式推导)
303 0
【机器学习】线性回归——最小二乘法的概率解释高斯噪声(理论+图解+公式推导)
|
机器学习/深度学习 人工智能 算法
【机器学习】线性分类——线性判别分析LDA(理论+图解+公式推导)
【机器学习】线性分类——线性判别分析LDA(理论+图解+公式推导)
346 0
【机器学习】线性分类——线性判别分析LDA(理论+图解+公式推导)
|
机器学习/深度学习 人工智能 资源调度
【机器学习】主成分分析(PCA)——利用奇异值分解(SVD)(理论+图解+公式推导)
【机器学习】主成分分析(PCA)——利用奇异值分解(SVD)(理论+图解+公式推导)
376 0
【机器学习】主成分分析(PCA)——利用奇异值分解(SVD)(理论+图解+公式推导)