在多点地质统计学中,数据样板构成了一个空间结构,不同方向节点就是一个变量。一个数据事件就是由众多变量值构成的整体。在进行数据事件相似性计算与比较时,需要逐点计算其差异;在进行聚类时亦要对所有数据事件进行比较,导致计算效率非常低下。因此很有必要挖掘数据事件内部结构,将其变量进行组合,求取特征值,并用少量特征值完成数据事件的聚类,有效提高储层建模效率。因此,PCA主成分分析被引入到多点地质统计学中。
主成分分析(Pirncipal Component Analysis,PCA)是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。PCA的目标是寻找r(r<n)个新变量,使它们反映事物的主要特征,压缩原有数据矩阵的规模。每个新变量是原有变量的线性组合,体现原有变量的综合效果,具有一定的实际含义。这r个新变量称为“主成分”,它们可以在很大程度上反映原来n个变量的影响,并且这些新变量是互不相关的,也是正交的。通过主成分分析,压缩数据空间,将多元数据的特征在低维空间里直观地表示出来。
假设x=[x1,x2,…,xp]′是一个p维的随机向量,它遵从正态分布x~N(u,σ2)。导出主成分的问题就是寻找x的线性函数a′x,并使a′x的相应的方差最大。
多点地质统计学原理、方法及应用
因此,在代数上就是寻找一个正交矩阵a,使a′a=1,并使方差:
多点地质统计学原理、方法及应用
设矩阵A的特征值为λ1≥λ2≥…≥λp≥0对应λi的特征向量记为ui,令Up×p=
多点地质统计学原理、方法及应用
则U是正交矩阵,即UU′=I,由于A是实对称矩阵,所以有
多点地质统计学原理、方法及应用
故
多点地质统计学原理、方法及应用
当a=u1时,
多点地质统计学原理、方法及应用
因此,当a=u1时,就满足了方差最大的要求,等于相应的特征值λ1。
同理,可推广到一般:
多点地质统计学原理、方法及应用
并且协方差为
多点地质统计学原理、方法及应用
这就是说,综合变量的系数aj是协方差矩阵A的特征值λj对应的特征向量ju,综合变量Fj的重要性等同于特征值λj,这样,就可以用少数几个变量来描述综合变量的性质。
在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采集的工作量,更重要的是在多数情况下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性,同时对分析带来不便。如果分别对每个指标进行分析,分析往往是孤立的,而不是综合的。盲目减少指标会损失很多信息,容易产生错误的结论。
因此需要找到一个合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量间存在一定的相关关系,因此有可能用较少的综合指标分别综合存在于各变量中的各类信息。
主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。
PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。
如图。我们希望找到某一个维度方向,它可以代表这两个维度的数据。图中列了两个向量方向,u1和u2,那么哪个向量可以更好的代表原始数据集呢?从直观上也可以看出,u1比u2好。
为什么u1比u2好呢?可以有两种解释,第一种解释是样本点到这个直线的 距离足够近 ,第二种解释是样本点在这个直线上的 投影能尽可能的分开 。
假设三维空间中有一系列点,这些点分布在一个过原点的斜面上,如果你用自然坐标系x,y,z这三个轴来表示这组数据的话,需要使用三个维度,而事实上,这些点的分布仅仅是在一个二维的平面上,那么,问题出在哪里?如果你再仔细想想,能不能 把x,y,z坐标系旋转一下 ,使数据所在平面与x,y平面重合?这就对了!如果把旋转后的坐标系记为x',y',z',那么这组数据的表示只用x'和y'两个维度表示即可!认为把数据降维后并没有丢弃任何东西,因为这些数据在平面以外的第三个维度的分量都为0,即z'的坐标为0。假设这些数据在z'轴有一个很小的抖动,那么我们仍然用上述的二维表示这些数据,理由是我们可以认为这两个轴x'和y'的信息是数据的主成分,而这些信息对于我们的分析已经足够了,z'轴上的抖动很有可能是噪声。
内积运算:
内积的几何意义:
注意这里我们专门区分了矢量长度和标量长度,标量长度总是大于等于0,值就是线段的长度;而矢量长度可能为负,其绝对值是线段长度,而符号取决于其方向与标准方向相同或相反。
A与B的内积等于A到B的投影长度乘以B的模。再进一步,如果我们假设B的模为1,即让|B|=1|B|=1,那么就变成了:
则内积几何意义:设向量B的模为1,则A与B的内积值等于A向B所在直线投影的矢量长度!
(1)什么是基?
如上图,我们经常用线段终点的点坐标表示向量,例如上面的向量可以表示为(3,2)。但是 只有一个(3,2)本身是不能够精确表示一个向量的 。这里的3实际表示的是向量在x轴上的投影值是3,在y轴上的投影值是2,我们隐式把以x轴和y轴上正方向长度为1的向量为标准,即基为(1,0)和(0,1)。因为它们分别是x和y轴正方向上的单位向量,因此就使得二维平面上点坐标和向量一一对应,非常方便。
所以,要准确描述向量,首先要确定一组基,然后给出基所在的各个直线上的投影值,进而确定坐标值。
(2)什么是基变换?
实际上任何两个线性无关的二维向量都可以成为一组基,所谓线性无关在二维平面内可以直观认为是两个不在一条直线上的向量。例如:(1,1)和(-1,1)也可以成为一组基。
一般来说,我们希望基的模是1,因为从内积的意义可以看到,如果基的模是1,那么就可以方便的用向量点乘基而直接获得其在新基上的坐标了!实际上,对应任何一个向量我们总可以找到其同方向上模为1的向量,只要让两个分量分别除以模就好了。则(1,1)和(-1,1)同方向上模为1的新基为:
(3)用矩阵表示基变换
将(3,2)变换为新基上的坐标,就是用(3,2)与第一个基做内积运算,作为第一个新的坐标分量,然后用(3,2)与第二个基做内积运算,作为第二个新坐标的分量。实际上,我们可以用矩阵相乘的形式简洁的表示这个变换:
其中矩阵的两行分别为两个基,乘以原向量,其结果刚好为新基的坐标。可以稍微推广一下,如果我们有m个二维向量,只要将二维向量按列排成一个两行m列矩阵,然后用“基矩阵”乘以这个矩阵,就得到了所有这些向量在新基下的值。例如(1,1),(2,2),(3,3),想变换到刚才那组基上,则可以这样表示:
一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果 。
最后,上述分析同时给矩阵相乘找到了一种物理解释:两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去。更抽象的说,一个矩阵可以表示一种线性变换。
上面我们讨论了选择不同的基可以对同样一组数据给出不同的表示,而且如果基的数量少于向量本身的维数,则可以达到降维的效果。但是我们还没有回答一个最最关键的问题:如何选择基才是最优的。或者说,如果我们有一组N维向量,现在要将其降到K维(K小于N),那么我们应该如何选择K个基才能最大程度保留原有的信息?看下图:
那么如何选择最优基这个问题被形式化为:寻找一个一维基,使得所有数据变换为这个基上的坐标表示后,方差值最大。
至此我们知道一下几点:
对原始数据进行(线性变换)基变换可以对原始样本给出不同的表示;
基的维度小于数据的维度可以起到降维的效果;
对基变换后的新样本求其方差,选取使其方差最大的基作为最优基。
对于上面二维降成一维的问题来说,找到那个使得方差最大的方向就可以了。不过对于更高维,还有一个问题需要解决。考虑三维降到二维问题。与之前相同,首先我们希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而我们选择第二个投影方向。如果我们还是单纯只选择方差最大的方向,很明显,这个方向与第一个方向应该是“几乎重合在一起”,显然这样的维度是没有用的,因此,应该有其他约束条件。从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。
至此,我们得到了降维问题的优化目标:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。
推广到一般情况:
(1)拉格朗日法
(2) 奇异值分解法(SVD)
在PCA降维过程中,当进行协方差矩阵上求解特征值时,如果面对维度高达1000010000 ,可想而知耗费的计算量程平方级增长。面对这样一个难点,从而引出奇异值分解(SVD),利用SVD不仅可以解出PCA的解,而且无需大的计算量。
PCA算法的主要优点有:
1、仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
2、各主成分之间正交,可消除原始数据成分间的相互影响的因素。
3、计算方法简单,主要运算是特征值分解,易于实现。
PCA算法的主要缺点有:
1、主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
2、方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
英灵神殿中蜜酒配方是很多玩家关注的重点,本次就为大家带来了英灵神殿蜜酒配方汇总,也是全蜜酒属性效果详解,非常全面的内容,想了解的朋友可以参考,希望能帮到大家。
蜜酒攻略汇总
蜜酒和食物不同,酒不占用三个食品的位置,而且可以同时喝多种不一样的蜜酒,部分回复类的有使用冷却,抗性类的有持续时间。酒的制作过程是通过铸铁锅制造蜜酒主成分,然后放在室内的发酵桶里进行发酵,一份蜜酒主成分能够生成六份蜜酒,发酵需要的时间也比较长,可能需要现实时间半个小时左右
酒类主成分的合成方法以及酒的效果
蜜酒主成分:可口:十份蜂蜜十份覆盆子五份蓝莓,蜜酒效果-50%生命回复,+300%耐力回复,持续十秒,是爆发输出和挖矿砍树用的酒呢。
蜜酒主成分:小份耐力:十份蜂蜜十份覆盆子十份黄蘑菇,蜜酒效果短时间恢复80点耐力,两分钟冷却,冷却期间无法使用中份耐力蜜酒,是很实用的东西。
蜜酒主成分:中份耐力:十份蜂蜜十份云莓十份黄蘑菇,蜜酒效果短时间恢复160点耐力,两分钟冷却,冷却期间无法使用小份耐力蜜酒,是北境平原时期才能用的东西。
蜜酒主成分:小份治疗:十份蜂蜜十份覆盆子五份蓝莓一根蒲公英,蜜酒效果短时间治疗50点生命值,无法突破生命上限,两分钟冷却,冷却期间无法使用中份治疗蜜酒,是前期非常实用的东西。
蜜酒主成分:中份治疗:十份蜂蜜十份覆盆子四份血袋一根蒲公英,蜜酒效果短时间治疗75点生命值,无法突破生命上限,两分钟冷却,冷却期间无法使用小份治疗蜜酒,是在泥泞沼泽对付中毒怪的好宝贝。
蜜酒主成分:抗毒:十份蜂蜜十份木炭五根蓟草一根蜥蜴精尾巴,蜜酒效果获得十分钟的超强毒抗,持续期间无法重复使用刷新持续时间,同样是在泥泞沼泽对付中毒怪的好宝贝。
蜜酒主成分:抗霜:十份蜂蜜五根蓟草两份血袋加一个灰矮人之眼,蜜酒效果获得十分钟的霜抗,持续期间无法重复使用刷新持续时间,可以让你在没有“湿”debuff时免疫凛冽雪山的“冻僵”效果,也可以免疫夜晚出门时的“冷”debuff,效果和银制霜狼胸甲、狼毛披风、平原牦牛披风相同,是刚到雪山没有抗寒手段时的过渡道具。
大麦酒主成分:抗火:十份大麦(不是面粉不是面粉不是面粉!)十份云莓,是目前唯一的大麦酒,效果是获得持续时间十分钟的火抗,持续期间无法重复使用刷新持续时间,可以用来对付丑地精营地内拿火把的近战怪和丢火球的丑地精萨满,也可以用在打五号最终boss的时候,boss的输出主要是火属性,目前没有火抗装备,所以对不起毛哥,你拿不到火抗鞋了。
在前面我们学习了一种有监督的降维方法——线性判别分析(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原理总结
主成分分析是一种线性降维算法,也是一种常用的数据预处理方法。
主成分分析法的目标:
是用方差(Variance)来衡量数据的差异性,并将差异性较大的高维数据投影到低维空间中进行表示。绝大多数情况下,我们希望获得两个主成分因子:分别是从数据差异性最大和次大的方向提取出来的,称为PC1(Principal Component 1) 和 PC2(Principal Component 2)。
Scoresxlsx (文末获取文件链接) 包含了约70名学生的全科考试成绩。其中每名学生是一个独立的样本,每门学科的成绩都是一个数据维度(共有13门成绩)。目的是通过分析学生的考试成绩来判断学生的类别(理科、文科生,和体育、艺术特长生)。
特征提取(或称特征抽取)一般做两方面的工作:
1、对原始数据进行某种变换。
2、在变换的过程中使不同的类别(或不同样本)具有相对较好的区分性。
PCA与LDA的局限性:
PCA的局限性:
PCA可以很好的解除线性相关,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关。
另外,PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了。
各个主成分特征是原始特征的线性组合,其含义具有一定的模糊性,不如原始样本特征的解释性强。方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
LDA的局限性:
传统的线性鉴别分析和主成分分析均只作用于对一维数据即矢量数据进行特证抽取,由此带来诸多不便。假如我们要处理的数据是200×200大小的图像矩阵,那应用这两个方法之前,我们必须把每一个图像转换为一个40000维的矢量。
在此基础上,主成分分析对应的协方差矩阵为一个40000×40000的矩阵,这是一个恐怖的数字,无论是计算协方差矩阵还是计算协方差矩阵的特征向量都将耗费巨大的计算资源。面对上述图像矩阵时,线性鉴别分析也存在一样的难题,而且过之而不及。
线性鉴别分析中类间散布矩阵与类内散布矩阵的大小均为40000×40000,而且还需要计算类内散布矩阵的逆矩阵,计算量的巨大可想而知。
主成分分析(英语:Principal components analysis,PCA)是一种统计分析、简化数据集的方法。
它利用正交变换来对一系列可能相关的变量的观测值进行线性变换,从而投影为一系列线性不相关变量的值,这些不相关变量称为主成分(Principal Components)。具体地,主成分可以看做一个线性方程,其包含一系列线性系数来指示投影方向。PCA对原始数据的正则化或预处理敏感(相对缩放)。
1、将坐标轴中心移到数据的中心,然后旋转坐标轴,使得数据在C1轴上的方差最大,即全部n个数据个体在该方向上的投影最为分散。意味着更多的信息被保留下来。C1成为第一主成分。
2、C2第二主成分:找一个C2,使得C2与C1的协方差(相关系数)为0,以免与C1信息重叠,并且使数据在该方向的方差尽量最大。
3、以此类推,找到第三主成分,第四主成分……第p个主成分。p个随机变量可以有p个主成分。
主成分分析经常用于减少数据集的维数,同时保留数据集当中对方差贡献最大的特征。这是通过保留低维主成分,忽略高维主成分做到的。这样低维成分往往能够保留住数据的最重要部分。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。
使用统计方法计算PCA
以下是使用统计方法计算PCA的详细说明。但是请注意,如果利用奇异值分解(使用标准的软件)效果会更好。
我们的目标是把一个给定的具有 M 维的数据集X 变换成具有较小维度 L的数据集Y。现在要求的就是矩阵Y,Y是矩阵X Karhunen–Loève变换。
Stata 命令
1主成分估计
Stata可以通过变量进行主成分分析,也可以直接通过相关系数矩阵或协方差矩阵进行。
(1)sysuse auto,clear
pca trunk weight length headroom
pca trunk weight length headroom, comp(2) covariance
(2)webuse bg2,clear
pca bg2cost , vce(normal)
2 Estat
estat给出了几个非常有用的工具,包括KMO、SMC等指标。
Kaiser-Meyer-Olkin(KMO),是用于测量变量之间相关关系的强弱的重要指标,是通过比较两个变量的相关系数与偏相关系数得到的。KMO介于0于1之间。KMO越高,表明变量的共性越强。如果偏相关系数相对于相关系数比较高,则KMO比较低,主成分分析不能起到很好的数据约化效果。根据Kaiser(1974),一般的判断标准如下:000-049,不能接受(unacceptable);050-059,非常差(miserable);060-069,勉强接受(mediocre);070-079,可以接受
(middling);080-089,比较好(meritorious);090-100,非常好(marvelous)。
SMC即一个变量与其他所有变量的复相关系数的平方,也就是复回归方程的可决系数。SMC比较高表明变量的线性关系越强,共性越强,主成分分析就越合适。
根据KMO越高,表明变量的共性越强和SMC比较高表明变量的线性关系越强,共性越强,主成分分析就越合适。
webuse bg2,clear
pca bg2cost , vce(normal)
estat anti
estat kmo
estat loadings
estat residuals
estat smc
estat summarize
3 预测
Stata可以通过predict预测变量得分、拟合值和残差等。
webuse bg2,clear
pca bg2cost , vce(normal)
predict score fit residual q (备注:q代表残差的平方和)
4 碎石图
碎石图是判断保留多少个主成分的重要方法。命令为screeplot。
webuse bg2,clear
pca bg2cost , vce(normal)
screeplot
5 得分图、载荷图
得分图即不同主成分得分的散点图。命令为scoreplot。 webuse bg2,clear
pca bg2cost, vce(normal)
scoreplot
Scores for component 2
载荷图即不同主成分载荷的散点图。命令为loadingplot。
webuse bg2,clear
pca bg2cost, vce(normal) loadingplot
Component 2
欢迎分享,转载请注明来源:品搜搜测评网