什么是主成分分析法
主成分分析法: 英文全名 Principal Component Analysis 简称 PCA ,由名字就可以看出来,这是一个挑重点分析的方法。主成分分析 法是通过 恰当 的数学变换 ,使新变量—— 主成分成为原变量 的线性 组合 ,并选 取少数 几个在变差总信息量中 比例较 大的主成分来分析 事物 的一种方法 。 主成分在变差信息量中的比例越大 , 它在综合评价 中的作用就越大
思想: 整体思想就是化繁为简,抓住问题关键,也就是降维思想。当然,既然是抓住关键,那么自然就是以牺牲精度为代价。
解决问题: 因为每个变量都在不同程度上反映了所研究问题的某些信息,并且指标之间彼此有一定的相关性,因而所得的统计数据反映的信息在一定程度上有重叠。 在用统计方法研究多变量问题时,变量太多会增加计算量和分析问题的复杂性。
人们希望在进行定量分析过程中,涉及的变量较少,得到的信息量较多。为了尽可能的减少冗余和噪音,一般情况可以从相关变量中选择一个,或者把几个相关变量综合为一个变量作为代表,用少数变量来代表所有变量。
原理: 因为评估所涉及的众多变量之间既然有一定的相关性,就必然存在着起支配作用的因素。根据这一点,通过对原始变量和相关矩阵的内部结构的关系研究 ,找出影响目标变量某一要素的几个综合指标,使综合指标为原来变量的线性拟合。 这样,综合指标不仅保留了原始变量的主要信息,且彼此间不相关,又比原始变量具有某些更优越的性质,使得我们在研究复杂目标变量评估问题时,容易抓住主要矛盾。
形象理解
比如,某学籍数据,有两列 M 和 F ,其中M 列的取值是如果学生为男性,则取值为 1 如果为女性,则取值为 0 。F 列,如果为男性则取值为 0 否则取值为一。 由这两种关系可以知道,这两列数据是强相关的。只要保留一列,就能够完全还原另外一列。 当然,不要局限于数据删除,还有数据转换,删除可以理解为在此方法中的一种方式。
当然,上述情况在真实数据中是不可能出现的。这里只是借此介绍一下这种思维。真实情况中, 我们需要考虑删除哪一列信息可以使得损失最小?或者是通过变换数据就能使得损失信息更小?又如何度量信息的丢失量?原始数据的处理降维有哪些步骤?
坐标示例:
我们来看下面这张图,这是一个椭圆的点阵。椭圆上面有一个长轴和一个短轴。现在我们要表示点阵的主要变化趋势,就可以以长短轴(或者平行于长短轴)构建新的坐标系。在极端的情况下,短轴变成了一个点,那么长轴就能代表这个点阵的趋势和特点。这样,一个二维数据,就变成了一维。
基础知识储备
内积与投影:
内积运算,将两个向量映射为一个实数。其几何意义就是 向量 A ,在向量 B 的投影长度。(下图是以二维向量为例,多维空间依然是如此。)
上式中,B 为单位向量
基 :
同样以上图 B为例,B向量为(3,2)其表示的其实为在 X 轴的投影值为3 ,在Y轴的投影值 为 2 。这其实加入了一个隐含信息,就是本坐标轴 分别是以 X Y轴为方向的单位向量。这里的 X Y 轴其实就是我们所提到的 基。只不过一般默认为 (1,0)和(0,1)
所以呢,要描述一组向量,首先是要确定一组基。然后求这个向量在这组基中的投影即可。对基的要求是线性无关,并不一定非要正交。但是因为正交基有较好的性质,所以一般情况我们都是用正交基。
基变换
上面我们了解了基的原理。如果同样把(3,2)放到新基里面描述,那就是把向量和新基相乘即可。
如果是在描述中,有多个基呢?那就是与基阵相乘。
如何实现降维
上面的思路,我们都清楚了。那么我们如何通过基变换来降维呢?这里我们来举个例子。假设我们有一个矩阵如下。
为了处理方面,我们现在把每个字段都减去字段平均值,那么就变成了如下所示
表示在坐标上如下图
那么,我们现在想用一维坐标来表示,而且要求尽可能的保留原来的信息,我们需要如何选择方向(基)呢?(二维降一维)
思路就是,希望投影后的值尽可能的分散,避免重合。
协方差:
在概率论与统计学中,协方差用于衡量两个随机变量的联合变化程度。而方差则是协方差的一种特殊情况,即变量与自身的协方差。
期望:在概率论和统计学中,一个离散性随机变量的期望值(或数学期望,亦简称期望,物理学中称为期待值)是试验中每次可能的结果乘以其结果概率的总和。比如骰子的期望值为 1 1/6 +21/6 + …+ 61/6 = 35
协方差公式为:
其中,E(X) = u E(Y) = v
协方差表示的是两个变量的总体的误差 ,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。如果X 与Y 是统计独立的,那么二者之间的协方差就是0
流程和步骤
第一步:标准化
把输入数据集变量的范围标准化,以使它们中的每一个均可以大致成比例的分析。简单说,就是要把存在较大差异的数据转变为可比较的数据。比如把 0-100 的变量转化为 0-1 的变量。这一步一般可以通过减去平均值,再除以每个变量值的标准差来完成。标准差公式如下
那么常用的标准化指标变量公式可为
第二步:协方差矩阵计算
这一步的目的是:了解输入数据集的变量是如何相对于平均值变化的。或者换句话说,是为了查看它们之间是否存在任何关系。因为有时候,变量间高度相关是因为它们包含大量的信息。因此,为了识别这些相关性,我们进行协方差矩阵计算。
协方差矩阵是p×p对称矩阵(其中p是维数),其所有可能的初始变量与相关联的协方差作为条目。
好了,现在我们知道协方差矩阵只不过是一个表,汇总了所有可能配对的变量间相关性。下面就是计算协方差矩阵的特征向量和特征值,以筛选主要成分。
第三步:计算协方差矩阵的特征向量和特征值,用以识别主成分
特征向量和特征值都是线性代数概念,需要从协方差矩阵计算得出,以便确定数据的主成分。开始解释这些概念之前,让我们首先理解主成分的含义
主成分是由初始变量的线性组合或混合构成的新变量。该组合中新变量(如主成分)之间彼此不相关,且大部分初始变量都被压缩进首个成分中。所以,10维数据会显示10个主成分,但是PCA试图在第一个成分中得到尽可能多的信息,然后在第二个成分中得到尽可能多的剩余信息,以此类推。
例如,假设你有一个10维数据,你最终将得到的内容如下面的屏幕图所示,其中第一个主成分包含原始数据集的大部分信息,而最后一个主成分只包含其中的很少部分。因此,以这种方式组织信息,可以在不丢失太多信息的情况下减少维度,而这需要丢弃携带较少信息的成分。
在这里,方差和信息间的关系是,线所承载的方差越大,数据点沿着它的分散也越大,沿着线的散点越多,它所携带的信息也越多。简单地说,只要把主成分看作是提供最佳角度来观察和评估数据的新轴,这样观测结果之间的差异就会更明显。
协方差矩阵的特征向量实际上是方差最多的轴的方向(或最多的信息),我们称之为主成分。通过特征值的顺序对特征向量进行排序,从最高到最低,你就得到了按重要性排序的主成分。
第四步:特征向量
正如我们在上一步中所看到的,计算特征向量并按其特征值依降序排列,使我们能够按重要性顺序找到主成分。在这个步骤中我们要做的,是选择保留所有成分还是丢弃那些重要性较低的成分(低特征值),并与其他成分形成一个向量矩阵,我们称之为特征向量。
因此,特征向量只是一个矩阵,其中包含我们决定保留的成分的特征向量作为列。这是降维的第一步,因为如果我们选择只保留n个特征向量(分量)中的p个,则最终数据集将只有p维。
第五步:沿主成分轴重新绘制数据
在前面的步骤中,除了标准化之外,你不需要更改任何数据,只需选择主成分,形成特征向量,但输入数据集时要始终与原始轴统一(即初始变量)。
这一步,也是最后一步,目标是使用协方差矩阵的特征向量去形成新特征向量,将数据从原始轴重新定位到由主成分轴中(因此称为主成分分析)。这可以通过将原始数据集的转置乘以特征向量的转置来完成。
优缺点
优点:化繁为简,降低了计算量。
缺点:一定程度上损失了精度。并且只能处理“线性问题”,这是一种线性降维技术、
总结
假设我们拿到了一份数据集,有m个样本,每个样本由n个特征(变量)来描述,那么我们可以按照以下的步骤进行降维:
1、将数据集中的每个样本作为列向量,按列排列构成一个n行m列的矩阵;
2、将矩阵的每一个行向量(每个变量)都减去该行向量的均值,从而使得新行向量的均值为0,得到新的数据集矩阵X;
3、求X的协方差矩阵,并求出协方差矩阵的特征值λ和单位特征向量e;
4、按照特征值从大到小的顺序,将单位特征向量排列成矩阵,得到转换矩阵P,并按PX计算出主成分矩阵;
5、用特征值计算方差贡献率和方差累计贡献率,取方差累计贡献率超过85%的前k个主成分,或者想降至特定的k维,直接取前k个主成分。
参考文章: https://blogcsdnnet/Murray_/article/details/79945148
参考文章: https://wwwcnblogscom/Luv-GEM/p/10765574html
参考文章: https://wwwssffxcom/wangzhanjianshe/40715html
可以使用matlab软件使用主成分分析法。具体步骤如下:
①对数据进行标准化处理,如下图所示:
②接着计算样本协方差矩阵,也称为相关系数矩阵,具体过程如下图所示:
③计算R的特征值和特征向量
④计算主成分贡献率和累计贡献率,其计算公式如下图所示:
⑤写出主成分,取累计贡献率超过80%的成分
⑥最后利用结果进行后续分析
这一切都可以在Matlab软件中实现,详细的代码如下图所示:
总而言之,利用主成分分析法可以解决多重共线性问题,是回归和聚类必备的基础方法。
设方阵A可对角化,则存在方阵P 有A=P^(-1)diag(a,b,c……)P,
diag(a,b,c……)为对角阵,a,b,c……为特征值,因为
A^m=Pdiag(a^(m),b^(m),c^(m),……)P^(-1),若a小于1,则当m趋向于无穷时
a^(m)趋向与0,相当于该成分消失
数据分析:常用的降维方法之主成分分析
主成分分析(Principal Component Analysis,PCA)也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。
在统计学中,主成分分析是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。
主成分分析的主要作用
1.主成分分析能降低所研究的数据空间的维数。即用研究m维的Y空间代替p维的X空间(m<p),而低维的Y空间代替 高维的x空间所损失的信息很少。即:使只有一个主成分Yl(即 m=1)时,这个Yl仍是使用全部X变量(p个)得到的。例如要计算Yl的均值也得使用全部x的均值。在所选的前m个主成分中,如果某个Xi的系数全部近似于零的话,就可以把这个Xi删除,这也是一种删除多余变量的方法。
2.有时可通过因子负荷aij的结论,弄清X变量间的某些关系。
3.多维数据的一种图形表示方法。我们知道当维数大于3时便不能画出几何图形,多元统计研究的问题大都多于3个变量。要把研究的问题用图形表示出来是不可能的。然而,经过主成分分析后,我们可以选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布况,由图形可直观地看出各样品在主分量中的地位,进而还可以对样本进行分类处理,可以由图形发现远离大多数样本点的离群点。
4.由主成分分析法构造回归模型。即把各主成分作为新自变量代替原来自变量x做回归分析。
5.用主成分分析筛选回归变量。回归变量的选择有着重的实际意义,为了使模型本身易于做结构分析、控制和预报,好从原始变量所构成的子集合中选择最佳变量,构成最佳变量集合。用主成分分析筛选变量,可以用较少的计算量来选择量,获得选择最佳变量子集合的效果。
主成分分析法的计算步骤
1、原始指标数据的标准化采集p 维随机向量x = (x1,X2,,Xp)T)n 个样品xi = (xi1,xi2,,xip)T ,i=1,2,…,n,
n>p,构造样本阵,对样本阵元进行如下标准化变换:
Z_{ij}=frac{x_{ij}-bar{x}_j}{s_j},i=1,2,,n; j=1,2,,p
其中bar{x}_j=frac{sum^{n}_{i=1}x_{ij}}{n},s^2_j=frac{sum^n_{i=1}(x_{ij}-bar{x}_j)^2}{n-1},得标准化阵Z。
2、对标准化阵Z 求相关系数矩阵
R=left[r_{ij}right]_pxp=frac{Z^T Z}{n-1}
其中,r_{ij}=frac{sum z_{kj}cdot z_{kj}}{n-1},i,j=1,2,,p 。
3、解样本相关矩阵R 的特征方程left|R-lambda I_pright|=0得p 个特征根,确定主成分
按frac{sum^m_{j=1}lambda_j}{sum^p_{j=1}lambda_j}ge 085 确定m 值,使信息的利用率达85%以上,对每个λj, j=1,2,,m, 解方程组Rb = λjb得单位特征向量b^o_j 。
4、将标准化后的指标变量转换为主成分
U_{ij}=z^{T}_{i}b^{o}_{j},j=1,2,,m
U1称为第一主成分,U2 称为第二主成分,…,Up 称为第p 主成分。
5 、对m 个主成分进行综合评价
对m 个主成分进行加权求和,即得最终评价值,权数为每个主成分的方差贡献率。
因子分析
因子分析法是指从研究指标相关矩阵内部的依赖关系出发,把一些信息重叠、具有错综复杂关系的变量归结为少数几个不相关的综合因子的一种多元统计分析方法。基本思想是:根据相关性大小把变量分组,使得同组内的变量之间相关性较高,但不同组的变量不相关或相关性较低,每组变量代表一个基本结构一即公共因子。
因子分析法的步骤
(1)对数据样本进行标准化处理。
(2)计算样本的相关矩阵R。
(3)求相关矩阵R的特征根和特征向量。
(4)根据系统要求的累积贡献率确定主因子的个数。
(5)计算因子载荷矩阵A。
(6)确定因子模型。
(7)根据上述计算结果,对系统进行分析。
以上是小编为大家分享的关于数据分析 常用的降维方法之主成分分析的相关内容,更多信息可以关注环球青藤分享更多干货
本文重点讨论对降维中常用的统计分析方法之一:主成分分析法。对影响31个城市综合评价的8个指标,用主成分分析法确定8个指标的权重,并使用SPASS和Python两种实战方式进行操作。
主成分分析(Principal components analysis)的思路主要是将原始多个变量通过线性组合的(矩阵旋转)方式转化为几个线无关的变量,且新生成的变量包含了原始变量的绝大部分信息,从而达到降维的目的。但因为新生成成分中所有原变量都占有一定比例,不同比例之间没有一个统一衡量的标准,所以这种方式在解释性方面相对较差。
实际使用的时候,如果变量间的数据波动量比较大,需要进行数据的归一化处理。但在标准化的过程中会抹杀一部分原本刻画变量之间离散程度差异的信息。所以标准化是视实际使用场景而定。
主成分分析不要求数据呈正态分布,主要是使用了线性变换的技术,因为其应用范围较广,通过对原始变量进行综合与简化,可以客观地确定各个指标的权重,避免主观判断的随意性。但是从主成分的思路出发,其主要适用于变量间相关性较强的数据,如果原始数据相关性弱,则起不到很好的降维作用,且降维后存在一定的数据丢失。
从食品,衣着,居住,家庭设备,交通通讯,文教娱乐,医疗保健,其他8个指标对全国31个主要城市统计
注:数据不具实际含义,仅用于分析过程学习。
注Bartlett球形度检验:检验是否适合主成分析。其原假设是变量间两两相互独立。KMO判断适合主成分析的程度。
查看各个主成分的特征根,方差,方差占比。
主要查看各个维度在成分上的载荷
根据上一步的计算的权重计算主每个城市得分:
Indicator = ∑DiWi (D表示原始指标数值,W表示当前维度的权重)
我们采用机器学习库Scikit-learn进行PCA操作,基于协方差进行矩阵变换。
从31和32结果中可以看到排名中有些城市在两种方式上的结果略微有些差异,这个是SPASS和Scikit-learn实现上存在一定的差异,本文的重点在于讨论主成分分析在两种方式上的实现。
如果问题,欢迎回复交流。如有需要源数据的,可以回复获取。
特别声明,本文的数据来自于随机制造,不构成任何效力,仅用于技术学习使用。
欢迎分享,转载请注明来源:品搜搜测评网