PCA(主成分分析) 一

可以用于系统运营状态做出评估,一般是将多个指标综合成一个变量,即将问题降维至一维,这样才能方便排序评估;

研究一个问题,必须考虑许多指标,这些指标能从不同的侧面反映我们所研究的对象的特征,但在某种程度上存在信息的重叠,具有一定的相关性。这种信息的重叠有时甚至会抹杀事物的真正特征与内在规律。

主成分分析pca 主成分分析的基本步骤主成分分析pca 主成分分析的基本步骤


主成分分析pca 主成分分析的基本步骤


主成分分析是蓝色的三角形就是经过坐标变换后得到的新点,其实他就是红色原点投影到红线、蓝线形成的。利用降维的思想, 在力求数据信息丢失最少的原则下,对高维的变量空间降维,即在众多变量中找出少数几个综合指标(原始变量的线性组合),并且这几个综合指标将尽可能多地保留原来指标变异方面的信息,且这些综合指标互不相关。这些综合指标就称为主成分。主成分的数目少于原始变量的数目。

主成分与原始变量间的关系

(2)主成分的数目少于原始变量的数目。

(3)主成分保留了原始变量的大多数变异信息。

(4)各主成分间互不相关。

定只有二维,即只有两个变量,由横坐标和纵坐标所代表;每个观测值都有相应于这两个坐标轴的坐标值。如果这些数据形成一个椭圆形状的点阵(这在二维正态的定下是可能的)该椭圆有一个长轴和一个短轴。在短轴方向上数据变化较少。在极端的情况,短轴如退化成一点,长轴的方向可以完全解释这些点的变化,由二维到一维的降维就自然完成了。

由图可以看出这些样本点无论是沿着xl轴方向或x2轴方向都具有较大的离散性,其离散的程度可以分别用观测变量xl的方和x2的方当协方为0时,表示两个字段完全。为了让协方为0,我们选择第二个基时只能在与个基正交的方向上选择。因此最终选择的两个方向一定是正交的。定量地表示。显然,如果只考虑x1和x2中的任何一个,那么包含在原始数据中的经济信息将会有较大的损失。

当坐标轴和椭圆的长短轴平行,那么代表长轴的变量就描述了数据的主要变化,而代表短轴的变量就描述了数据的次要变化。但是,坐标轴通常并不和椭圆的长短轴平行。因此,需要寻找椭圆的长短轴,并进行变换,使得新变量和椭圆的长短轴平行。如果长轴变量代表了数据包含的大部分信息,就用该变量代替原先的两个变量(舍去次要的一维),降维就完成了。椭圆的长短轴相得越大,降维也越有道理。

F1, F2除了可以对包含在Xl,X2中的信息起着浓缩作用之外,还具有不相关的性质,这就使得在研究复杂的问题时避免了信息重叠所带来的虚性。二维平面上的个点的方大部分都归结在F1轴上,而F2轴上的方很小。 F1和F2称为原始变量x1和x2的综合变量。

X1 X2 ... Xp共计p个变量,现在将这p个变量线性组合组成新的变量F1 F2 ... Fk ,其中k

由讨论多个指标降为少数几个综合指标的过程在数学上就叫做降维。主成分分析通常的做法是,寻求原指标的线性组合Fi。

主成分

第二主成分

说明主成分分析把p个随机变量的总方分解成为p个不相关的随机变量的方之和。协方矩阵ΣΣ的对角线上的元素之和等于特征根之和。

PCA(主成分分析)python实现

PCA在机器学习中很常用,是一种无参数的数据降维方法。PCA步骤:

回顾了下PCA的步骤,并用python实现。深刻的发现当年学的特征值、特征向量好强大。

PCA是一种无监督的学习方式,是一种很常用的降维方法。在数据信息损失最小的情况下,将数据的特征数量由n,通过映射到另一个空间的方式,变为k(k

这里用一个2维的数据来说明PCA,选择2维的数据是因为2维的比较容易画图。

这是数据:

画个图看看分布情况:

协方的定义为:

设n为数据的特征数,那么协方矩阵M, 为一个n n的矩阵,其中Mij为第i和第j个特征的协方,对角线是各个特征的方。

在我们的数据中,n=2,所以协方矩阵是2 2的,

得到cov的结果为:

array([[ 0.61655556, 0.61544444],

[ 0.61544444, 0.71655556]])

由于我们之前已经做过normalization,因此对于我们来说,

这个矩阵就是 datadata的转置矩阵。

得到结果:

matrix([[ 5.549, 5.539],

[ 5.539, 6.449]])

我们发现,其实协方矩阵和散度矩阵关系密切,散度矩阵 就是协方矩阵乘以(总数据量-1)。因此他们的 特征根 和 特征向量 是一样的。这里值得注意的一点就是,散度矩阵是 SVD奇异值分解 的一步,因此PCA和SVD是有很大联系的,他们的关系这里就不详细谈了,以后有机会再写下。

用numpy计算特征根和特征向量很简单,

但是他们代表的意义来源于:PMCID: PMC7585944非常有意思,让我们将特征向量加到我们原来的图里:

其中红线就是特征向量。有几点值得注意:

得到特征值和特征向量之后,我们可以根据 特征值 的大小,从大到小的选择K个特征值对应的特征向量。

这个用python的实现也很简单:

主要将原来的数据乘以经过筛选的特征向量组成的特征矩阵之后,就可以得到新的数据了。

数据果然变成了一维的数据。

【小结】我们通过画图来理解下数据经过PCA到底发生了什么。

绿色的五角星是PCA处理过后得到的一维数据,为了能跟以前的图对比,将他们的高度定位1.2,其实就是红色圆点投影到蓝色线之后形成的点。这就是PCA,通过选择特征根向量,形成新的坐标系,然后数据投影到这个新的坐标系,在尽可能少的丢失信息的基础上实现降维。

通过上述几步的处理,我们简单的实现了PCA个2维数据的处理,但是原理就是这样,我们可以很轻易的就依此实现的。

用sklearn的PCA与我们的pca做个比较:

得到结果:

用我们的pca试试

得到结果:

完全一致,完美~

值得一提的是,sklearn中PCA的实现,用了部分SVD的结果,果然他们因缘匪浅。

pca主成分分析结果解释

(3)服务质量调查

在拿到测序公司给的生信分析报告的时候,我们可能会看到一张主成分分析(principal component ysis,PCA)图。

大部分就写成组与组之间存在显著分离,然后就没啦,这样是不是有点过于单薄。

如何才能读懂PCA图的组成部分,并且写出完整的结果描述呢?看完这篇就知道啦。

【概述】

一般来说,研究中涉及一个变量,两个变量以及三个变量时,可以分别绘制成一维,二维,和三维空间图来展示结果。然而,涉及到多个变量时,结果过于复杂,无法准确的展示。这时,用到PCA分析的关键一步,降维。简单来说,通过减少数据中的变量来化简数据;这里的减少指标,并不是随意加减,而是用复杂的数理知识,得到几个“综合指标”来代表整个数据,这个综合指标就是所谓的主成分!

【简单的两组比较】

先观察一下如果用矩阵表示,即中的组成成分,主要包括主成分和样本点。每组的样本都用圆圈进行聚类,每个部分代表的内容如图所示。

来源于:PMCID: PMC7011317

【多组处理比较】

【PCA biplot(涉及箭头)】

来源于:PMCID: PMC8085102

【其他类型】

两个线条之间的夹角,可理解为两个变量之间的相关性

夹角小于9至此,我们得到了降维问题的优化目标: 将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方为0,而字段的方则尽可能大(在正交的约束下,取的K个方)。0度,可以认为两个变量正相关

大于90度,可以认为两个变量负相关。

来源于:PMCID: PMC8224010

通过某个变量所代表的线条在PC1和PC2上的投影,我们可以看出这个变量对样本分离的贡献度,线条越长,代表投影越大,影响越显著。

来源于:PMID: 29835

PCA常见的结果解读就到这里啦,从实战中更清晰的了解PCA图。

相信阅读完以后,对于写作会有一定的帮助。

总的来说,描述的时候不仅要考虑样本的重复性,还要观察该结果的生物学意义。

跟着SCI文献读懂PCA的内容和原理,看完这篇就全明白啦! - 云生信学生物信息的文章 - 知乎

主成分分析(PCA)的推导与解释

搞清楚原理后,不管遇到什么样的PCA图,都可以应对的游刃有余了。

PCA是一种无参数的数据降维方法,在机器学习中很常用,这篇文章主要从三个角度来说明PCA是怎么降维的分别是方角度,特征值和特征向量以及SVD奇异值分解。

主成分分析:当给定的协方矩阵或者相关矩阵的特征值时,主成分一般是固定的独特的;

推导主要来源于下面网址的这篇文章,是通过方和协方矩阵来说明:

PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

在上面网址的文章中,从头到尾发明了一遍PCA我觉得很有借鉴意义。我们知道PCA是一种数据降维的方法,在降低维度的过程中,我们当然想要保留更多的特征,PCA就是经过数学推导,保留最多特征同时降维的方法。

在推导之前要先知道几个基础知识:

设A和B是两个n维向量,我们知道n维向量可以等价表示为n维空间中的一条从原点发射的有向线段,为了简单起见我们设A和B均为二维向量,则A=(x 1 ,y 1 ),B=(x 2 ,y 2 )。则在二维平面上A和B可以用两条发自原点的有向线段表示,见下图:

到这里还是看不出内积和这东西有什么关系,不过如果我们将内积表示为另一种我们熟悉的形式:

下面我们继续在二维空间内讨论向量。上文说过,一个二维向量可以对应二维笛卡尔直角坐标系中从原点出发的一个有向线段。例如下面这个向量:

在代数表示方面,我们经常用线段终点的点坐标表示向量,例如上面的向量可以表示为(3,2),这是我们再熟悉不过的向量表示。

不过我们常常忽略, 只有一个(3,2)本身是不能够表示一个向量的。 我们仔细看一下, 这里的3实际表示的是向量在x轴上的投影值是3,在y轴上的投影值是2。 也就是说我们其实 隐式引入了一个定义:以x轴和y轴上正方向长度为1的向量为标准。 那么一个向量(3,2)实际是说在x轴投影为3而y轴的投影为2。注意投影是一个矢量,所以可以为负。

更正式的说, 向量(x,y)实际上表示线性组合 :

例如,(1,1)和(-1,1)也可以成为一组基。一般来说,我们希望基的模是1,因为从内积的意义可以看到,如果基的模是1,那么就可以方便的用向量点乘基而直接获得其在新基上的坐标了!实际上,对应任何一个向量我们总可以找到其同方向上模为1的向量,只要让两个分量分别除以模就好了。例如,上面的基可以变为(1/√2,1/√2)和(-1/√2,1/√2)

现在,我们想获得(3,2)在新基上的坐标,即在两个方向上的投影矢量值,那么根据内积的几何意义,我们只要分别计算(3,2)和两个基的内积,不难得到新的坐标为(5/√2,-1/√2)。下图给出了新的基以及(3,2)在新基上坐标值的示意图:

另外这里要注意的是,我们列举的例子中基是正交的(即内积为0,或直观说相互垂直),但可以成为一组基的要求就是线性无关,非正交的基也是可以的。不过因为正交基有较好的性质, 所以一般使用的基都是正交的。

一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果。 (新基按行,向量按列)

特别要注意的是,这里R可以小于N,而R决定了变换后数据的维数。也就是说, 我们可以将一N维数据变换到更低维度的空间中去 , 变换后的维度取决于基的数量。因此这种矩阵相乘的表示也可以表示降维变换。

,上述分析同时给矩阵相乘找到了一种物理解释: 两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去。 更抽象的说,一个矩阵可以表示一种线性变换。很多同学在学线性代数时对矩阵相乘的方法感到奇怪,但是如果明白了矩阵相乘的物理意义,其合理性就一目了然了。

我们从上面的矩阵乘法与基变换可以看出,当新基的维数小于原来的维数时可以做到数据的降维,但是究竟如何选择新基就是我们现在面临的问题,我们想要选择一个维数更小的新基,同时新基保留有更多的信息。我们知道矩阵向新基投影的形式,也就是PCA是将一组N维的特征投影到K维(K

那么怎么衡量更多的特征,也就是投影后尽量少的重叠,投影值尽可能分散。

这种投影值的分散数学上可以用方表示。方公式这里不表, 所以PCA现在的问题就变成了,寻找K维的新基,使得数据变换到这组基上后方值。

从二维到一维的降维,只需要找到一个一维基使得方,但是三维降到二维呢?我们需要找到两个基让这个三维数据投影到两个基上,如果我们找方的两个基,会发现他们完全一样或者线性相关,这和一个基没什么区别,不能表达更多的信息,所以我们需要添加限制条件,我们希望这两个基彼此线性无关,扩展到K个基也是一样。

在数学上使用协方表示两个向量的相关性,在我们将均值归一化为0后,协方可以表示为:

m为向量的元素数。可以PCA (Principal component ysis)看到,在字段均值为0的情况下,两个字段的协方简洁的表示为其内积除以元素数m。

上面我们导出了优化目标,但是这个目标似乎不能直接作为作指南(或者说算法),因为它只说要什么,但根本没有说怎么做。所以我们要继续在数学上研究计算方案。

我们看到,最终要达到的目的与字段内方及字段间协方有密切关系。因此我们希望能将两者统一表示,仔细观察发现,两者均可以表示为内积的形式,而内积又与矩阵相乘密切相关。于是我们来了灵感:

设我们只有a和b两个特征,那么我们将它们按行组成矩阵X:

然后我们用X乘以X的转置,并乘上系数1/m:

这个矩阵对角线上的两个元素分别是两个字段的方,而其它元素是a和b的协方。两者被统一到了一个矩阵的。

根据矩阵相乘的运算法则,这个结论很容易被推广到一般情况:

设我们有m个n维数据记录,将其按列排成n乘m的矩阵X,设C=1/mXX T ,则C是一个对称矩阵,其对角线分别个各个字段的方,而第i行j列和j行i列元素相同,表示i和j两个字段的协方。

根据上述推导,我们发现要达到优化目前,等价于将协方矩阵对角化:即除对角线外的其它元素化为0,并且在对角线上将元素按大小从上到下排列,这样我们就达到了优化目的。这样说可能还不是很明晰,我们进一步看下原矩阵与基变换后矩阵协方矩阵的关系:

设原始数据矩阵X对应的协方矩阵为C,而P是一组基按行组成的矩阵,设Y=PX,则Y为X对P做基变换后的数据。设Y的协方矩阵为D,我们推导一下D与C的关系:

现在事情很明白了!我们要找的P不是别的,而是能让原始协方矩阵对角化的P。换句话说, 优化目标变成了寻找一个矩阵P,满足PCP T 是一个对角矩阵 ,并且对角元素按从大到小依次排列,那么P的前K行就是要寻找的基,用P的前K行组成的矩阵乘以X就使得X从N维降到了K维并满足上述优化条件。

由上文知道,协方矩阵C是一个是对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质:

1)实对称矩阵不同特征值对应的特征向量必然正交。

2)设特征向量λ重数为r,则必然存在r个线性无关的特征向量对应于λ,因此可以将这r个特征向量单位正交化。

由上面两条可知,一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个特征向量为e 1 ,e 2 ,...,e n ,我们将其按列组成矩阵:

则对协方矩阵C有如下结论:

其中Λ为对角矩阵,其对角元素为各特征向量对应的特征值(可能有重复)。以上结论不再给出严格的数学证明,对证明感兴趣的朋友可以参考线性代数书籍关于“实对称矩阵对角化”的内容。

到这里,我们发现我们已经找到了需要的矩阵P:

至此我们完成了整个PCA的数学原理讨论。

在我的文章特征值和特征向量中说过,特征值反映了矩阵对于特征向量的拉伸程度,只有拉伸而没有旋转,也就是在特征向量方向上的作用程度,所以在PCA中我们选取前K个特征向量组成新基进行投影,就是因为原特征在前K个特征向量有的作用程度,投影过后可以保留更多的信息,作用程度是用特征值表示的,所以我们可以使用下面的式子表示贡献率,贡献率是表示投影后信息的保留程度的变量,可以用下面的式子表示:

也就是特征值的总和比上前K个特征值,一般来说贡献率要大于85%。

上面的推导中我们看到

其实就是对于D的奇异值分解。但是其实两者还有一些区别:

1) SVD可以获取另一个方向上的主成分,而PCA只能获得单个方向上的主成分:

隐语义索引(Latent semantic indexing,简称LSI)通常建立在SVD的基础上,通过低秩逼近达到降维的目的。

注意到PCA也能达到降秩的目的,但是PCA需要进行零均值化,且丢失了矩阵的稀疏性。

通过SVD可以得到PCA相同的结果,但是SVD通常比直接使用PCA更稳定。因为PCA需要计算X T X的值,对于某些矩阵,求协方时很可能会丢失一些精度。例如Lauchli矩阵:

1)将原始数据按列组成n行m列矩阵X

2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

3)求出协方矩阵

4)求出协方矩阵的特征值及对应的特征向量

5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

6)Y=PX即为降维到k维后的数据

courser里吴恩达的PCA的习题就不错。

机器学习数据降维方法 PCA主成分分析

研究调查100家公司2010-2013年关于财务方面的具体数据,这些财务指标维度分别为盈利能力、偿债能力、运营能力、发展能力以及公司治理。其中每个维度分别有几个分析项,但是有些指标是越大越好,有些指标是越小越好。需要在研究前进行数据处理。

将原始数据按列组成n行m列矩阵X将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值求出协方矩阵求出协方矩阵的特征值及对应的特征向量将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵PY=PX即为降维到k维后的数据1. PCA的推导

(5)形象调查

PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

我们知道PCA是一种数据降维的方法,在降低维度的过程中,我们当然想要保留更多的特征,PCA就是经过数学推导,保留最多特征同时降维的方法。

在推导之前要先知道几个基础知识:

内积与投影

现在我们从A点向B所在直线引一条垂线。我们知道垂线与B的交点叫做A在B上的投影,再设A与B的夹角是a,则投影的矢量长度为|A|cos(a),其中|A|是向量A的模,也就是A线段的标量长度。

到这里还是看不出内积和这东西有什么关系,不过如果我们将内积表示为另一种我们熟悉的形式:

现在事情似乎是有点眉目了:A与B的内积等于A到B的投影长度乘以B的模。再进一步,如果我们设B的模为1,即让|B|=1,那么就变成了:

也就是说,设向量B的模为1,则A与B的内积值等于A向B所在直线投影的矢量长度!这就是内积的一种几何解释,也是我们得到的个重要结论。在后面的推导中,将反复使用这个结论。

基下面我们继续在二维空间内讨论向量。上文说过,一个二维向量可以对应二维笛卡尔直角坐标系中从原点出发的一个有向线段。例如下面这个向量:

在代数表示方面,我们经常用线段终点当协方为0时,表示两个字段完全。为了让协方为0,我们选择第二个基时只能在与个基正交的方向上选择。因此最终选择的两个方向一定是正交的。的点坐标表示向量,例如上面的向量可以表示为(3,2),这是我们再熟悉不过的向量表示。

我们列举的例子中基是正交的(即内积为0,或直观说相互垂直),但可以成为一组基的要求就是线性无关,非正交的基也是可以的。不过因为正交基有较好的性质,所以一般使用的基都是正交的。

3. 基变换的矩阵表示

一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果。(新基按行,向量按列)

特别要注意的是,这里R可以小于N,而R决定了变换后数据的维数。也就是说,我们可以将一N维数据变换到更低维度的空间中去,变换后的维度取决于基的数量。因此这种矩阵相乘的表示也可以表示降维变换。

,上述分析同时给矩阵相乘找到了一种物理解释:两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去。更抽象的说,一个矩阵可以表示一种线性变换。很多同学在学线性代数时对矩阵相乘的方法感到奇怪,但是如果明白了矩阵相乘的物理意义,其合理性就一目了然了。

4. 协方矩阵与优化目标

我们从上面的矩阵乘法与基变换可以看出,当新基的维数小于原来的维数时可以做到数据的降维,但是究竟如何选择新基就是我们现在面临的问题,我们想要选择一个维数更小的新基,同时新基保留有更多的信息。我们知道矩阵向新基投影的形式,也就是PCA是将一组N维的特征投影到K维(K

那么怎么衡量更多的特征,也就是投影后尽量少的重叠,投影值尽可能分散。

协方

从二维到一维的降维,只需要找到一个一维基使得方,但是三维降到二维呢?我们需要找到两个基让这个三维数据投影到两个基上,如果我们找方的两个基,会发现他们完全一样或者线性相关,这和一个基没什么区别,不能表达更多的信息,所以我们需要添加限制条件,我们希望这两个基彼此线性无关,扩展到K个基也是一样。

至此,我们得到了降维问题的优化目标:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方为0,而字段的方则尽可能大(在正交的约束下,取的K个方)。

关于PCA的贡献率与K的选择

在我的文章特征值和特征向量中说过,特征值反映了矩阵对于特征向量的拉伸程度,只有拉伸而没有旋转,也就是在特征向量方向上的作用程度,所以在PCA中我们选取前K个特征向量组成新基进行投影,就是因为原特征在前K个特征向量有的作用程度。

投影过后可以保留更多的信息,作用程度是用特征值表示的,所以我们可以使用下面的式子表示贡献率,贡献率是表示投影后信息的保留程度的变量,也就是特征值的总和比上前K个特征值,一般来说贡献率要大于85%。

主成分分析(PCA)

PCA是一种广泛应用的降维分析技术,由PCA建立的新坐标空间是原模式空间的线性变换,且用一组正交基依次反映了空间的分散特征。PCA和因子分析的别在于:PCA是用最少个数的主成分占有的总方,而因子分析是用尽可能少的公共因子地解释各个变量之间的相互关系。

设有N个观察样本,其特征变量为m个。

Xi=(Xi1,Xi2,…,Xim)T组成样本集。PCA方法及将m个特征变量组合成m个新的成分,这些新成分分别是m个特征变量的线性组合:

Y1=L11X扩展资料:1+L21X2+…+Lm1Xm

Y2=L12X1+L22X2+…+Lm2Xm

……………………………………

Ym=L1mX1+L2mX2+…+LmmXm

Y=LX

为求L矩阵,可先求空间分布中心:

Xc=(Xc1,Xc2,…,Xcm)T

将空间平移即得位移我们之所以默认选择(1,0)和(0,1)为基,当然是比较方便,因为它们分别是x和y轴正方向上的单位向量,因此就使得二维平面上点坐标和向量一一对应,非常方便。 但实际上任何两个线性无关的二维向量都可以成为一组基, 所谓线性无关在二维平面内可以直观认为是两个不在一条直线上的向量。向量

Yj=Xj-Xc

j=1,2,…,N

或表主成分分析是一种数学变换方法,它把给定的一组变量通过线性变换转换为一组不相关的变量。在这种变换中,保持变量的总方不变,同时,使主成分具有方,第二主成分具有次大方,依此类推。示为矩阵

相态分析与地质找矿

由此可得离散矩阵

S=RRT

可用雅可比(Jacobi)法求出S矩阵的特征值和特征向量。求出的特征向量即是L矩阵的每一列元素。对应于特征值的特征向量所反映的方,而对应于第二特征值的第二特征向量位于特征向量的正交量上,且反映了该正交面上的方。我们可取前P个特征向量构成坐标空间(P≤12),当P=2,3 时,即可得到降维后的显示图像。当选P=2时,可将欲测样本投影到平面上来,用目测法对其进行分类和识别。

请问pca主成分分析中,贡献率怎么计算?apcs计算?

主成分分析:不需要有设(assumptions),

PCA把原先的n个特征用数目更少的m个特征取代,新的m个特征一要保证化样本方,二保证相互的。新特征是旧特征的线性组合,提供一个新的框架来解释结果。

两个维数相同的向量的内积被定义为:

PCA的原理就是维数投影,通俗的说可以把3维或者更zhi高维数投影到2维或者1维坐标上,PC1和PC2就是主元得分,三维的点投影到二维的位置就是主元得分,其次怎么确定投影坐标的维数呢,需要一个累计贡献率去做,比如保证百分之85的信息,再去确定其坐标维数;

因子分析:因子个数需要分析者指定(SPSS和sas根据一定的条件自动设定,只要是特征值大于1的因子主可进入分析),指定的因子数量不同而结果也不同;

计算的话,先算协方,然后确定特征向量和特征值,通过累计贡献率算维数,然后原有数据乘以特征矩阵得到得分值,具体的你可以看看文献内容。

主成分分析的原理是设法将原来变量重新组合成一组新的相互无关的几个综合变量,同时根据实际需要从中可以取出几个较少的总和变量尽可能多地反映原来变量的信息的统计方法叫做主成分分析或称主分量分析,也是数学上处理降维的一种方法。

主成分分析是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。通常数学上的处理就是将原来P个指标作线性组合,作为新的综合指标。

参考资料来源:

统计学方法:主成分分析(PCA)实战

从eig_pairs选取前k个特征向量就行。这里,我们只有两个特征向量,选一个的。

本文重点讨论对降维中常用的统计分析方法之一:主成分分析法。对影响31个城市综合评价的8个指标,用主成分分析法确定8个指标的权重,并使用SPASS和Python两种实战方式进行作。

=frac{1}{m}sum_{i=1}^{m}a_ib_i)

主成分分析(Principal components ysis)的思路主要是将原始多个变量通过线性组合的(矩阵旋转)方式转化为几个线无关的变量,且新生成的变量包含了原始变量的绝大部分信息,从而达到降维的目的。但因为新生成成分中所有原变量都占有一定比例,不同比例之间没有一个统一衡量的标准,所以这种方式在解释性方面相对较。

实际使用的时候,如果变量间的数据波动量比较大,需要进行数据的归一化处理。但在标准化的过程中会抹杀一部分原本刻画变量之间离散程度异的信息。所以标准化是视实际使用场景而定。

主成分分析不要求数据呈正态分布,主要是使用了线性变换的技术,因为其应用范围较广,通过对原始变量进行综合与简化,可以客观地确定各个指标的权重,避免主观判断的随意性。但是从主成分的思路出发,其主要适用于变量间相关性较强的数据,如果原始数据相关性弱,则起不到很好的降维作用,且降维后存在一定的数据丢失。

从食品,衣着,居住,家庭设备,交通通讯,文教娱乐,医疗保健,其他8个指标对全国31个主要城市统计

注:数据不具实际含通过numpy我们可以很方便的得到:义,仅用于分析过程学习。

查看各个主成分的特征根,方,方占比。

主要查看各个维度在成分上的载荷

根据上一步的计算的权重计算主每个城市得分:

Indicator = ∑DiWi (D表示原始指标数值,W表示当前维度的权重)

我们采用机器学习库Scikit-learn进行PCA作,基于协方进行矩阵变换。

从3.1和3.2结果中可以看到排名中有些城市在两种方式上的结果略微有些异,这个是SPASS和Scikit-learn实现上存在一定的异,本文的重点在于讨论主成分分析在两种方式上的实现。

如果问题,欢迎回复交流。如有需要源数据的,可以回复获取。

特别声明,本文的数据来自于随机制造,不构成任何效力,仅用于技术学习使用。

SPSS如何进行主成分分析?

设A和B是两个n维向量,我们知道n维向量可以等价表示为n维空间中的一条从原点发射的有向线段,为了简单起见我们设A和B均为二维向量,则A=(x1,y1),B=(x2,y2)。则在二维平面上A和B可以用两条发自原点的有向线段表示,见下图:

1.案例说明

将xl轴和x2轴先平移,再同时按逆时针方向旋转θθ角度,得到新坐标轴Fl和F2。Fl和F2是两个新变量。根据旋转变换的公式:

2.研究目的

利用偿债能力、运营能力、发展能力以及公司治理四个维度下的分析项进行主成分分析以及判断分析项与主成分之间的关系,利用得到的成分得分进行命名作为线性回归的自变量,用盈利能力下的三个指标作为线性回归的因变量,因为每次线性回归只能放入一个因变量所以重复进行三次分析并且得到结论。

二、数据处理

此案例中有些指标需要提前处理,具体指标隶属维度以及指标性质如下,比如资产负责率是逆向指标可以进行逆向化处理或者取倒数;本文进行取倒数处理,因为比较常见,但是取倒数需要分析项的数据不等于0,其他指标需要正向化处理,公司治理的2个指标可以做正向化处理也可以做适度化,比如认为指标不是越大越好也不是越小越好,接近于某个值或某个范围内认为更好那就使用适度化,此案例中认为越大越好处理为正向化(也有参考文献做适度化处理,建议以参考文献为主)。

首先用SPSSAU将分析项进行“描述分析”观察数据的基本情况。发现资产负债率所有数据均大于0,所以进行处理时可以直接“取倒数”。然后利用SPSSAU“数据处理”中的“生成变量”进行指标处理(一般正逆向化处理后不需要在进行标准化处理,因为已经正逆向化已经处理了量纲问题,但是取倒数后需要进行标准化处理)。

三、主成分结果

分析前已处理过分析项与主成分之间的关系,共进行三次分析结论如下:共有三次分析,次分析“应收账款周转率”,“净利润增长率”,“主营业务收入增长率”共3项,共同度小于0.4,将此3项进行删除,删除之后进行第二次分析,发现“每股经营性流量”出现“张冠李戴”进行删除处理。而其他出现“纠缠不清”现象的,暂时不处理(进行关注即可)。重新分析后除了“流动比率”、“速动比率”以及“资产负债率”这3项,“销售比率”这一项,其余的项均存在“纠缠不清”的现象,但考虑到成分下只余下两项,因而表示可以接受,主成分析分析结束。所以结果将从数据是否适合主成分分析,成分选择个数以及提取成分三部分进行说明。

1.KMO值和巴特球形检验

首先分析研究数据是否适合进行主成分分析,从上表可以看出:KMO为0.614,大于0.6,满足主成分分析的前提要求,以及数据通过Bartlett球形度检验(p<0.05),说明研究数据适合进行主成分分析。

2.成分选择个数

当数据确定可以使用主成分分析后,下一步确定主成分成分选择个数,案例中使用特征根值大于1的方法。

从上表可知:主成分分析一共提取出4个主成分,特征根值均大于1,此4个主成分的方解释率分别是33.871%,20.571%,15.799%,13.779%,累积方解释率为84.021%。

3.提取成分

已经确定了成分选择个数经过分析得到载荷系数矩阵如下:

从结果中可以看出,主成分1中主要反映了公司的偿债能力。主成分2中主要反映了公司治理能力,主成分3中主要反映了公司运营能力,主成分4中主要反映了公司发展能力。

整理表格如下:五个成分的名字分别叫F1偿债能力、F2治理能力、F3运营能力以及F4发展能力。

数据通过主成分分析得到四个维度,此案例的主要目的是研究上述四个维度对于公司盈利的影响,最终得到结论。将得到的成分得分利用SPSSAU标题处理进行命名,四个分析项作为线性回归的自变量,盈利能力下的三个指标作为因变量,重复进行三次线性回归,并进行对结果描述,回归结果描述分为两大部分,一为中间分析过程,二为回归分析结果。

四、主成分回归结果

F1偿债能力、F2治理能力、F3运营能力以及output:F4发展能力如下:

用得到的成分得分进行命名作为线性回归的自变量,用盈利能力下的三个指标作为线性回归的因变量,因为每次线性回归只能放入一个因变量所以重复进行三次分析并且得到结论。