来自: 带呀带尾呀 (数据小生、数字营销、新媒体)
主成分分析与因子分析的区别
1 目的不同: 因子分析把诸多变量看成由对每一个变量都有作用的一些公共因子和仅对某一个变量有作用的特殊因子线性组合而成,因此就是要从数据中控查出对变量起解释作用的公共因子和特殊因子以及其组合系数;主成分分析只是从空间生成的角度寻找能解释诸多变量变异的绝大部分的几组彼此不相关的新变量(主成分)。
2 线性表示方向不同: 因子分析是把变量表示成各公因子的线性组合;而主成分分析中则是把主成分表示成各变量的线性组合。
3 假设条件不同:主成分分析中不需要有假设;因子分析的假设包括:各个公共因子之间不相关,特殊因子之间不相关,公共因子和特殊因子之间不相关。
4 提取主因子的方法不同:因子分析抽取主因子不仅有主成分法,还有极大似然法,主轴因子法,基于这些方法得到的结果也不同;主成分只能用主成分法抽取。
5 主成分与因子的变化:当给定的协方差矩阵或者相关矩阵的特征值唯一时,主成分一般是固定的;而因子分析中因子不是固定的,可以旋转得到不同的因子。
6 因子数量与主成分的数量:在因子分析中,因子个数需要分析者指定(SPSS根据一定的条件自动设定,只要是特征值大于1的因子主可进入分析),指定的因子数量不同而结果也不同;在主成分分析中,成分的数量是一定的,一般有几个变量就有几个主成分(只是主成分所解释的信息量不等)。
7 功能:和主成分分析相比,由于因子分析可以使用旋转技术帮助解释因子,在解释方面更加有优势;而如果想把现有的变量变成少数几个新的变量(新的变量几乎带有原来所有变量的信息)来进入后续的分析,则可以使用主成分分析。当然,这种情况也可以使用因子得分做到,所以这种区分不是绝对的。
1 、聚类分析
基本原理:将个体(样品)或者对象(变量)按相似程度(距离远近)划分类别,使得同一类中的元素之间的相似性比其他类的元素的相似性更强。目的在于使类间元素的同质性最大化和类与类间元素的异质性最大化。
常用聚类方法:系统聚类法,K-均值法,模糊聚类法,有序样品的聚类,分解法,加入法。
注意事项:1 系统聚类法可对变量或者记录进行分类,K-均值法只能对记录进行分类;
2 K-均值法要求分析人员事先知道样品分为多少类;
3 对变量的多元正态性,方差齐性等要求较高。
应用领域:细分市场,消费行为划分,设计抽样方案等
2、判别分析
基本原理:从已知的各种分类情况中总结规律(训练出判别函数),当新样品进入时,判断其与判别函数之间的相似程度(概率最大,距离最近,离差最小等判别准则)。
常用判别方法:最大似然法,距离判别法,Fisher判别法,Bayes判别法,逐步判别法等。
注意事项:1 判别分析的基本条件:分组类型在两组以上,解释变量必须是可测的;
2 每个解释变量不能是其它解释变量的线性组合(比如出现多重共线性情况时,判别权重会出现问题);
3 各解释变量之间服从多元正态分布(不符合时,可使用Logistic回归替代),且各组解释变量的协方差矩阵相等(各组协方方差矩阵有显著差异时,判别函数不相同)。
相对而言,即使判别函数违反上述适用条件,也很稳健,对结果影响不大。
应用领域:对客户进行信用预测,寻找潜在客户(是否为消费者,公司是否成功,学生是否被录用等等),临床上用于鉴别诊断。
3、 主成分分析/ 因子分析
主成分分析基本原理:利用降维(线性变换)的思想,在损失很少信息的前提下把多个指标转化为几个综合指标(主成分),即每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,使得主成分比原始变量具有某些更优越的性能(主成分必须保留原始变量90%以上的信息),从而达到简化系统结构,抓住问题实质的目的。
因子分析基本原理:利用降维的思想,由研究原始变量相关矩阵内部的依赖关系出发,把一些具有错综复杂关系的变量归结为少数几个综合因子。(因子分析是主成分的推广,相对于主成分分析,更倾向于描述原始变量之间的相关关系)
求解主成分的方法:从协方差阵出发(协方差阵已知),从相关阵出发(相关阵R已知)。
(实际研究中,总体协方差阵与相关阵是未知的,必须通过样本数据来估计)
求解因子载荷的方法:主成分法,主轴因子法,极大似然法,最小二乘法,a因子提取法。
注意事项:1 由协方差阵出发与由相关阵出发求解主成分所得结果不一致时,要恰当的选取某一种方法;
2 对于度量单位或是取值范围在同量级的数据,可直接求协方差阵;对于度量单位不同的指标或是取值范围彼此差异非常大的指标,应考虑将数据标准化,再由协方差阵求主成分;
3主成分分析不要求数据来源于正态分布;
4 在选取初始变量进入分析时应该特别注意原始变量是否存在多重共线性的问题(最小特征根接近于零,说明存在多重共线性问题)。
5 因子分析中各个公共因子之间不相关,特殊因子之间不相关,公共因子和特殊因子之间不相关。
应用领域:解决共线性问题,评价问卷的结构效度,寻找变量间潜在的结构,内在结构证实。
4、对应分析/最优尺度分析
基本原理:利用降维的思想以达到简化数据结构的目的,同时对数据表中的行与列进行处理,寻求以低维图形表示数据表中行与列之间的关系。
对应分析:用于展示变量(两个/多个分类)间的关系(变量的分类数较多时较佳);
最优尺度分析:可同时分析多个变量间的关系,变量的类型可以是无序多分类,有序多分类或连续性变量,并 对多选题的分析提供了支持。
5、典型相关分析
基本原理:借用主成分分析降维的思想,分别对两组变量提取主成分,且使从两组变量提取的主成分之间的相关程度达到最大,而从同一组内部提取的各主成分之间互不相关。
在对灾毁土地复垦效益进行分析时,会碰到众多因素,各因素间又相互关联,将这些存在相关关系的因素通过数学方法综合成少数几个最终参评因素,使这几个新的因素既包含原来因素的信息又相互独立。简化问题并抓住其本质是分析过程中的关键,主成分分析法可以解决这个难题。
(一)主成分分析的基本原理
主成分分析法(Principal Components Analysis,PCA)是把原来多个变量化为少数几个综合指标的一种统计分析方法。从数学角度来看,这是一种降维处理方法,即通过对原始指标相关矩阵内部结果关系的研究,将原来指标重新组合成一组新的相互独立的指标,并从中选取几个综合指标来反映原始指标的信息。假定有n个评价单元,每个评价单元用m个因素来描述,这样就构成一个n×m阶数据矩阵:
灾害损毁土地复垦
如果记m个因素为 x1,x2,…,xm,它们的综合因素为 z1,z2,…,zp(p≤m),则:
灾害损毁土地复垦
系数lij由下列原则来决定:
(1)zi与zj(i≠j,i,j=1,2,…,p)相互无关;
(2)z1是x1,x2,…,xm的一切线性组合中方差最大者,依此类推。
依据该原则确定的综合变量指标z1,z2,…,zp分别称为原始指标的第1、第2、…、第p个主成分,分析时可只挑选前几个方差最大的主成分。
(二)主成分分析法的步骤
(1)将原始数据进行标准化处理,以消除原始数据在数量级或量纲上的差异。
(2)计算标准化的相关数据矩阵:
灾害损毁土地复垦
(3)用雅克比法求相关系数矩阵R的特征值(λ1,λ2,…,λp)和与之相对应的特征向量 αi=(αi1,αi2,…,αip),i=1,2,…,p。
(4)选择重要的主成分,并写出其表达式。
主成分分析可以得到P个主成分,但是由于各个主成分的方差与其包含的信息量皆是递减的,所以在实际分析时,一般不选取P个主成分,而是根据各个主成分所累计的贡献率的大小来选取前K个主成分,这里的贡献率是指某个主成分的方差在全部方差中所占的比重,实际上也是某个特征值在全部特征值合计中所占的比重。即:
灾害损毁土地复垦
这说明,主成分所包含的原始变量的信息越强,贡献率也就越大。主成分的累计贡献率决定了主成分个数K的选取情况,为了保证综合变量能包括原始变量的绝大多数信息,一般要求累计贡献率达到85%以上。
另外,在实际应用过程中,选择主成分之后,还要注意主成分实际含义的解释。如何给主成分赋予新的含义,给出合理的解释是主成分分析中一个相当关键的问题。一般来说,这个解释需要根据主成分表达式的系数而定,并与定性分析来进行有效结合。主成分是原来变量的线性组合,在这个线性组合中各变量的系数有正有负、有大有小,有的又大小相当,因此不能简单地把这个主成分看作是某个原变量的属性作用。线性组合中各变量系数的绝对值越大表明该主成分主要包含了该变量;如果有几个大小相当的变量系数时,则认为这一主成分是这几个变量的综合,而这几个变量综合在一起具有什么样的实际意义,就需要结合具体的问题和专业,给出合理的解释,进而才能达到准确分析的目的。
(5)计算主成分得分。根据标准化的原始数据,将各个样品分别代入主成分表达式,就可以得到各主成分下的各个样品的新数据,即为主成分得分。具体形式可如下:
灾害损毁土地复垦
(6)依据主成分得分的数据,则可以进行进一步的统计分析。其中,常见的应用有主成分回归,变量子集合的选择,综合评价等。
(三)主成分分析法的评价
通过主成分分析法来评价复垦产生的效益,可将多个指标转化成尽可能少的综合性指标,使综合指标间互不相干,既减少了原指标信息的重叠度,又不丢失原指标信息的总含量。该方法不仅将多个指标转化成综合性指标,而且也能对每个主成分的影响因素进行分析,从而判别出影响整个评价体系的关键因素,并且主成分分析法在确定权重时可以科学地赋值,以避免主观因素的影响。
需要注意的是,主成分分析法虽然可以对每个主成分的权重进行科学、定量的计算,避免人为因素及主观因素的影响,但是有时候赋权的结果可能与客观实际有一定误差。因此,利用主成分分析法确定权重后,再结合不同专家给的权重,是最好的解决办法。这样可以在定量的基础上作出定性的分析,通过一定的数理方法将两种数据结合起来考虑。
主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。 在统计学中,主成分分析(principal components analysis,PCA)是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面但是,这也不是一定的,要视具体应用而定
在前面我们学习了一种有监督的降维方法——线性判别分析(Linear Dscriminant Analysis,LDA)。LDA不仅是一种数据压缩方法还是一种分类算法,LDA将一个高维空间中的数据投影到一个低维空间中去,通过最小化投影后各个类别的类内方差和类间均值差来寻找最佳的投影空间。
本文介绍的主成分分析(Principe Component Analysis,PCA)也是一种降维技术,与LDA不同的是,PCA是一种无监督降维技术,因此PCA的主要思想也与LDA不同。LDA是一种有监督的分类兼降维技术,因此其最大化均值差最小化类内差的思想够保证在降维后各个类别依然能够很好地分开。但PCA只用来降维而无需分类,因此PCA需要考虑的是如何在降维压缩数据后尽可能的减少数据信息的损失。在PCA中使用协方差来表示信息量的多少,至于为什么能这么表示后面再进行介绍。下面我们从一些基本的线代知识开始。
在进行数据分析时我们的数据样本经常被抽象为矩阵中的一组向量,了解一些线代基础知识理解PCA非常重要,但在这里我们并不准备也不可能将所有的线代知识都罗列以便,因此这里我们仅会复习一些对理解PCA较为重要的东西。更多线代的内容可参考下面几个链接:
为了方便,我们这里以一个二维平面为例。
在前面我们说了,在数据处理时我们经常讲一个样本数据当作一个向量。在二维平面中,一个向量从不同的角度有不同的理解方式,例如对于向量 (-2, 3) T :
在我们描述任何东西的时候其实都是选择了一个参照系的,也即事物都是相对的,最简单的运动与静止(以静止的事物为参照),说一个有点意思的——人,人其实也是放在一个参考系中的,我们可以将其理解为生物种类系统,抛开这个大的系统去独立的定义人是很难让人理解的。向量也是这样的,虽然我们前面没有指明,但是上面的向量其实是在一个默认坐标系(或称为空间)中的,也即x,y轴,但是在线性代数中我们称其为基。在线代中任何空间都是由一组线性无关的(一维空间由一个基组成)基向量组成。这些基向量可以组成空间中的任何向量。
现在假设我们有如下一个矩阵相乘的式子:
因此,上面的例子可以有两种理解方式:
(1)如果我们将值全为1对角方阵视为标准坐标系,则它表示在 i=(1, -2) T 和 j=(3, 0) T 这组基底下的坐标 (-1, 2) T 在基底 (1, 0) T 、(0, 1) T 下的坐标,如下:
当我们讨论向量 (-1, 2) T 时,都隐含了一个默认的基向量假设:沿着x轴方向长度为1的 i,沿着y轴长度为1的j。
但是,(-1, 2) T 可以是任何一组基底下的向量。例如,他可能是i'=(2,1) T , j'=(-1, 1) T 这组基下的一个向量。此时他在我们默认坐标系 i=(1, 0) T ,j=(0, 1) T 下的计算过程如下:
我们可以从另一个角度理解基地变换的过程:我们先 误认为 (-1, 2) T 是坐标系i=(1, 0) T ,j=(0, 1) T 下的坐标,此时我们通过线性变换[[2, -1], [1, 1]](每个嵌套列表看做一行)把坐标轴i,j(基坐标)分别变换到了新的位置 i1=(2, 1) T , j1=(-1, 1) T (他们也是用默认坐标系表示的),即[2, -1], [1, 1]]。此时我们把“误解”转换成了真正的向量。如下:
在上面我们说了矩阵是一种变换,现在我们继续从这个角度来理解特征值和特征向量。为了方便理解,我们在这里做一个类比——将变换看作物理中的作用力。我们知道一个力必须有速度和方向,而矩阵对一个向量施加的变换也是一样的。考虑一下特征向量的定义:
上面介绍了一些基本的线性代数相关的知识,下面开始介绍PCA的原理。
上面我们讨论了选择不同的基可以对同样一组数据给出不同的表示,而且如果基的数量少于向量本身的维数,则可以达到降维的效果。但是我们还没有回答一个最最关键的问题:如何选择基才是最优的。或者说,如果我们有一组N维向量,现在要将其降到K维(K小于N),那么我们应该如何选择K个基才能最大程度保留原有的信息?
要完全数学化这个问题非常繁杂,这里我们用一种非形式化的直观方法来看这个问题。
为了避免过于抽象的讨论,我们仍以一个具体的例子展开。假设我们的数据由五条记录组成,将它们表示成矩阵形式:
其中每一列为一条数据记录,而一行为一个字段。为了后续处理方便,我们首先将每个字段内所有值都减去字段均值,其结果是将每个字段都变为均值为0(这样做的道理和好处后面会看到)。中心化的数据为:
通过上一节对基变换的讨论我们知道,这个问题实际上是要在二维平面中选择一个方向,将所有数据都投影到这个方向所在直线上,用投影值表示原始记录。这是一个实际的二维降到一维的问题。
那么如何选择这个方向(或者说基)才能尽量保留最多的原始信息呢?一种直观的看法是:希望投影后的投影值尽可能分散。
以上图为例,可以看出如果向x轴投影,那么最左边的两个点会重叠在一起,中间的两个点也会重叠在一起,于是本身四个各不相同的二维点投影后只剩下两个不同的值了,这是一种严重的信息丢失,同理,如果向y轴投影最上面的两个点和分布在x轴上的两个点也会重叠。所以看来x和y轴都不是最好的投影选择。我们直观目测,如果向通过第一象限和第三象限的斜线投影,则五个点在投影后还是可以区分的。
下面,我们用数学方法表述这个问题。
对于上面二维降成一维的问题来说,找到那个使得方差最大的方向就可以了。不过对于更高维,还有一个问题需要解决。考虑三维降到二维问题。与之前相同,首先我们希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而我们选择第二个投影方向。
如果我们还是单纯只选择方差最大的方向,很明显,这个方向与第一个方向应该是“几乎重合在一起”,显然这样的维度是没有用的,因此,应该有其他约束条件。 从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。
可以看到,在字段均值为0的情况下,两个字段的协方差简洁的表示为其内积除以元素数m。
当协方差为0时,表示两个字段完全独立。为了让协方差为0,我们选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交的。
至此,我们得到了降维问题的优化目标: 将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。
上面我们导出了优化目标,但是这个目标似乎不能直接作为操作指南(或者说算法),因为它只说要什么,但根本没有说怎么做。所以我们要继续在数学上研究计算方案。
我们看到,最终要达到的目的与字段内方差及字段间协方差有密切关系。因此我们希望能将两者统一表示,仔细观察发现,两者均可以表示为内积的形式,而内积又与矩阵相乘密切相关。于是我们来了灵感:
假设我们只有a和b两个字段,那么我们将它们按行组成矩阵X:
然后我们用X乘以X的转置,并乘上系数1/m:
根据矩阵相乘的运算法则,这个结论很容易被推广到一般情况:
设我们有m个n维数据记录,将其按列排成n乘m的矩阵X,设C=1/m(XX T ),则C是一个对称矩阵,其对角线分别个各个字段的方差,而第i行j列和j行i列元素相同,表示i和j两个字段的协方差。
根据上述推导,我们发现要达到优化目前,等价于将协方差矩阵对角化:即除对角线外的其它元素化为0,并且在对角线上将元素按大小从上到下排列,这样我们就达到了优化目的 。这样说可能还不是很明晰,我们进一步看下原矩阵与基变换后矩阵协方差矩阵的关系:
设原始数据矩阵X对应的协方差矩阵为C,而P是一组基按行组成的矩阵,设Y=PX,则Y为P对X做基变换后的数据。设Y的协方差矩阵为D,我们推导一下D与C的关系:
现在所有焦点都聚焦在了协方差矩阵对角化问题上,有时,我们真应该感谢数学家的先行,因为矩阵对角化在线性代数领域已经属于被玩烂了的东西,所以这在数学上根本不是问题。
由上文知道,协方差矩阵C是一个是对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质:
1)实对称矩阵不同特征值对应的特征向量必然正交。
2)设特征向量λ重数为r,则必然存在r个线性无关的特征向量对应于λ,因此可以将这r个特征向量单位正交化。
则对协方差矩阵C有如下结论:
以上结论不再给出严格的数学证明,对证明感兴趣的朋友可以参考线性代数书籍关于“实对称矩阵对角化”的内容。
到这里,我们发现我们已经找到了需要的矩阵P:P = E T
P是协方差矩阵的特征向量单位化后按行排列出的矩阵,其中每一行都是C的一个特征向量。如果设P按照Λ中特征值的从大到小,将特征向量从上到下排列,则用P的前K行组成的矩阵乘以原始数据矩阵X,就得到了我们需要的降维后的数据矩阵Y。
PCA的特征向量的求解除了使用上述最大化方差的矩阵分解方法,还可以使用最小化损失法,具体可参见: 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 。
总结一下PCA的算法步骤:
设有m条n维数据。
LDA和PCA都用于降维,两者有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。
首先我们看看相同点:
我们接着看看不同点:
参考:
PCA的数学原理
线性代数的直觉
线性判别分析LDA原理总结
欢迎分享,转载请注明来源:品搜搜测评网