主成分分析法的缺点:
1、在主成分分析中,我们首先应保证所提取的前几个主成分的累计贡献率达到一个较高的水平(即变量降维后的信息量须保持在一个较高水平上),其次对这些被提取的主成分必须都能够给出符合实际背景和意义的解释(否则主成分将空有信息量而无实际含义)。
2、主成分的解释其含义一般多少带有点模糊性,不像原始变量的含义那么清楚、确切,这是变量降维过程中不得不付出的代价。因此,提取的主成分个数m通常应明显小于原始变量个数p(除非p本身较小),否则维数降低的“利”可能抵不过主成分含义不如原始变量清楚的“弊”。
最近在 3d face 模型生成研究中,经常使用PCA,所以就把PCA的学习记录了下来。主成分分析(PCA, Principal Component Analysis)为我们提供了一种压缩数据的方式,我们也可以将它看作学习数据表示的无监督学习算法。PCA学习一种比原始维度更低的表示,也学习了一种元素之间没有线性相关的表示。我们知道一个经典的无监督学习任务就是找到数据的最佳表示。最佳表示可以是在比本身表示的信息更简单或者更易访问受到一些惩罚火或限制的情况下,尽可能多地保留原始数据的信息。那么PCA就为我们提供了这样一种方法。
PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。
我们有样本X和样本Y,那么可以得到样本X的均值:
样本X方差:
由以上的基础公式我们可以得出以下的结论:
协方差为正时,说明X和Y是正相关关系;协方差为负时,说明X和Y是负相关关系;协方差为0时,说明X和Y是相互独立,互不相关。Cov(X,X)就是X的方差。当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵)。例如,对于3维数据(x,y,z),计算它的协方差就是:
其实协方差矩阵和散度矩阵关系密切,散度矩阵就是协方差矩阵乘以(总数据量-1)。因此它们的 特征值 和 特征向量 是一样的。这里值得注意的是,散度矩阵是 SVD奇异值分解 的一步,因此PCA和SVD是有很大联系
其中,λ是特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。
其中,Q是矩阵A的特征向量组成的矩阵,而矩阵Σ则是一个对角阵,对角线上的元素就是特征值。
假设A是一个mn的矩阵,那么得到的U是一个 mm 的方阵,U里面的正交向量被称为左奇异向量。Σ是一个 mn 的矩阵,Σ除了对角线其它元素都为0,对角线上的元素称为奇异值。 Vt (t在右上角)是v的转置矩阵,是一个 nn 的矩阵,它里面的正交向量被称为右奇异值向量。而且一般来讲,我们会将Σ上的值按从大到小的顺序排列。
降到k维
注:这里除或不除样本数量n或n-1,其实对求出的特征向量没有影响。
的特征值与特征向量。
注:为什么使用:
降到k维
,当样本数多、样本特征数也多的时候,这个计算还是很大的。当我们用到SVD分解协方差矩阵的时候,SVD有两个好处:
对照就会发现,结果是不一样的。sklearn中的PCA是通过svd_flip函数实现的,sklearn对奇异值分解结果进行了一个处理,因为 ui σi vi=(-ui) σi (-vi) ,也就是u和v同时取反得到的结果是一样的,而这会导致通过PCA降维得到不一样的结果(虽然都是正确的)。具体了解可以自己分析一下sklearn中关于PCA的源码。
对于PCA可以做什么,对应于不同的业务,有不同的使用场景。
例如我最早接触时,用来分析2D人脸的矩阵化后里面的主要成分,提取出关键的维度,使用低维度的矩阵来表示人脸的特征。
当然对应于其他的数据,也是可以使用PCA的,例如在一个向量化好的用户信息矩阵中,需要提取出关键的维度来作为特征描写。所以他的使用场景就类似于他的名字,分析矩阵里面的主要成分,但是维度具体取多少,需要按照自己的数据来计算,也许需要多次的验证。
PCA是一种广泛应用的降维分析技术,由PCA建立的新坐标空间是原模式空间的线性变换,且用一组正交基依次反映了空间的最大分散特征。PCA和因子分析的差别在于:PCA是用最少个数的主成分占有最大的总方差,而因子分析是用尽可能少的公共因子最优地解释各个变量之间的相互关系。
设有N个观察样本,其特征变量为m个。
Xi=(Xi1,Xi2,…,Xim)T组成样本集。PCA方法及将m个特征变量组合成m个新的成分,这些新成分分别是m个特征变量的线性组合:
Y1=L11X1+L21X2+…+Lm1Xm
Y2=L12X1+L22X2+…+Lm2Xm
……………………………………
Ym=L1mX1+L2mX2+…+LmmXm
如果用矩阵表示,即
Y=LX
为求L矩阵,可先求空间分布中心:
Xc=(Xc1,Xc2,…,Xcm)T
将空间平移即得位移向量
Yj=Xj-Xc
j=1,2,…,N
或表示为矩阵
相态分析与地质找矿
由此可得离散矩阵
S=RRT
可用雅可比(Jacobi)法求出S矩阵的特征值和特征向量。求出的特征向量即是L矩阵的每一列元素。对应于最大特征值的第一特征向量所反映的方差最大,而对应于第二特征值的第二特征向量位于第一特征向量的正交量上,且反映了该正交面上的最大方差。我们可取前P个特征向量构成坐标空间(P≤12),当P=2,3 时,即可得到降维后的显示图像。当选P=2时,可将欲测样本投影到平面上来,用目测法对其进行分类和识别。
主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。 在统计学中,主成分分析(principal components analysis,PCA)是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面但是,这也不是一定的,要视具体应用而定
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
主成分分析用于对数据信息进行浓缩,比如总共有20个指标值,是否可以将此20项浓缩成4个概括性指标。
第一步:判断是否进行主成分(pca)分析;判断标准为KMO值大于06
第二步:主成分与分析项对应关系判断
第三步:在第二步删除掉不合理分析项后,并且确认主成分与分析项对应关系良好后,则可结合主成分与分析项对应关系,对主成分进行命名
spssau操作主成分分析共有三步:
①选择进阶方法--主成分分析
②将分析项拖拽到右侧分析框
③点击开始分析
默认提供主成分得分和综合得分,分析前勾选“成分得分”、“综合得分”即可。
说明相关数据都在这八个图里面,选择所需要的结果进行分析即可。
主成分分析(PCA)是一种统计过程,它使用正交变换将一组可能相关变量(实体,每个实体具有不同的数值)的观察值转换为一组称为主成分的线性不相关变量的值。
PCA可以通过数据协方差(或相关性)矩阵的特征值分解或数据矩阵的奇异值分解来完成,通常在初始数据的归一化步骤之后。每个贡献数据的归一化包括平均居中 _从变量的测量平均值中减去每个数据值,使其经验平均值(平均值)为零_并可能标准化每个变量的方差,使其等于1;参见Z分数。
欢迎分享,转载请注明来源:品搜搜测评网