主成分分析PCA
00 分钟
2024-7-28

1 模型概览

1.1 学科分属

基本学科归属: 主成分分析(Principal Component Analysis,PCA),是一种统计方法。主成分分析作为基础的数学分析方法,其实际应用十分广泛,比如人口统计学、数量地理学、分子动力学模拟、数学建模、数理分析等学科中均有应用,是一种常用的多变量分析方法。
需要背景知识: 正交变换,数据结构,协方差,特征向量与特征值,数据规范化(包括Min-Max规范化,Z-Score规范化,小数定标规范化等)

1.2 历史发展

1.2.1 主成分分析起源与发展

首先是由K.皮尔森(Karl Pearson,1901)对非随机变量引入的,尔后H.霍特林(Hotelling,1933)将此方法推广到随机向量的情形。信息的大小通常用离差平方和或方差来衡量。 1846年,Bracais提出的旋转多元正态椭球到“主坐标”上,使得新变量之间相互独立。 皮尔森、霍特林都对主成分的发展做出了贡献,霍特林的推导模式被视为主成分模型的成熟标志。主成分分析被广泛应用于区域经济发展评价,服装标准制定,满意度测评,模式识别,图像压缩等许多领域。

1.2.2 研究现状

1.2.2.1国内主成分分析特征提取研究现状
我国经过近十年来的发展,运用主成分分析的方法对高光谱遥感矿物信息特征提取已经取得了很大进展。航空遥感中心高光谱遥感课题组对这方面进行了理论、技术方法以及规模化应用示范研究,取得了丰硕成果,取得了良好的经济与社会效益,申请了多项发明专利。环境污染问题已经成为人们关注的焦点,为更好地监控治理污染,有必要对大气状况进行实时监测。传统的湿式化学技术以及后续发展起来的气相色谱法、质谱和色谱联合技术等是以吸气取样后的实验分析为基础,不具备实时和连续监测能力。近几年,运用主成分分析的光谱压缩特征提取方法对大气进行分析得出大气状况。 在国内还运用主成分分析的方法对人口、教育、地区的经济发展发面等方面研究,都取得了一定的成果。
1.2.2.2 国外主成分分析特征提取研究现状
在国外运用主成分分析的方法对医学,地质,人脸识别等领域。在美国、英国等国家采用主成分分析的方法对氯吡格雷、肝素钠、肝素钙等低分子肝素相关产品的销售额数据进行处理,形成新的指标体系,而后应用BP神经网络的方法建立模型,评价模型的拟合能力。在一些欧美国家用核主成分分析方法也就是主成分分析的改进算法,其采用非线性方法提取主成分,把核主成分分析应用到人脸识别中,利用核主成分分析方法选择合适的核函数在高维空间提取人脸图像的主成分,核主成分分析与传统主成分分析相比,可以得到更好的适合分类的特征,基于ORL人脸库,识别核主成分分析提取出的主成分的相关性系数。实验结果表明,核主成分分析不仅实现了降维,而且能取得比传统主成分分析更好的识别性能,正确识别率为92.5%。在日本运用主成分分析的方法对地质进行分析,从而来预测地震避免不必要的损失。同时,主成分分析作为一种优秀的降维提取主要信息的手段,先后在海洋学、地质学、地球物理学、资源科学等地学分值中都得到了一定程度的应用。该方法为地学的发展提供了有力工具。

2 模型介绍

2.1 具体模型介绍

2.1.1 主成分分析的研究目的

主成分分析(Principal Component Analysis,PCA),是一种统计评价方法。首先是由K.皮尔森(Karl Pearson)对非随机变量引入的,之后H.霍特林将此方法推广到随机向量的情形。
这种方法通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。主成分分析的主要目的是希望用较少的变量去解释原来资料中的大部分变异,是一种能够起到降维作用的综合性评价指标。

2.1.2 主成分分析的机理

主成分分析的机理主要是是将原来很多具有相关性的一系列指标(p个指标)重新组合成一组较少个数的互不相关的综合指标来代替原来的指标。利用挑选的一组合适的权重来得到一个原随机变量的主成分
为了这些权重能更好地综合评价随机变量,我们要求达到最大,同时规定,这样得到的一组主成分就可以较好地区分原随机变量。

2.1.3 主成分分析法进行评价的步骤

2.1.3.1 对原始数据进行标准化处理

假设进行主成分分析的指标变量有m个,分别为x1, x2, ⋯, xm,共有n个评价对象,第i个评价对象的第j个指标的取值为aij。将各指标值为aij转换成标准值ãij,有
式中:为第个指标的样本均值和样本标准差。

2.1.3.2 计算相关系数矩阵R

相关系数矩阵R = (rij)m × m,有$$r_{ij}=\frac{\sum\limits_{k=1}^{n}\widetilde{a}_{ki}\cdot\widetilde{a}_{kj}}{n-1},i,j=1,2,\cdots,m,$$式中:rii = 1, rij = rji, rij为第i个指标与第j个指标的相关系数。

2.1.3.3 计算特征值和特征向量

计算相关系数矩阵R的特征值λ1 ≥ λ2 ≥ ⋯ ≥ λm ≥ 0,及对应的特征向量u1, u2, ⋯, um,其中uj = [u1ju2j,⋯,umj]T,由特征向量组成m个新的指标变量:$$y_1=u_{11}\widetilde{x}_1+u_{21}\widetilde{x}_2+\cdots+u_{m1}\widetilde{x}_m,\\y_2=u_{12}\widetilde{x}_1+u_{22}\widetilde{x}_2+\cdots+u_{m2}\widetilde{x}_m,\\\vdots\\y_m=u_{1m}\widetilde{x}_1+u_{2m}\widetilde{x}_2+\cdots+u_{mm}\widetilde{x}_m,\\$$式中:y1为第1主成分;y2为第2主成分;⋯;ym为第m主成分。 ##### 2.1.3.4 选择p(pm)个主成分,计算综合评价值
(1)计算特征值λj(j=1,2,⋯,m)的信息贡献率和累积贡献率。称$$b_j=\frac{\lambda_j}{\sum\limits_{k=1}^{m}\lambda_k},j=1,2,\cdots,m$$为主成分yj的信息贡献率,同时,有$$\alpha_p=\frac{\sum\limits_{k=1}^p\lambda_k}{\sum\limits_{k=1}^m\lambda_k}$$为主成分y1, y2, ⋯, yp的累积贡献率。当αp接近于1(一般取αp = 0.85, 0.90, 0.95)时,则选择前p个指标变量y1, y2, ⋯, yp作为p个主成分,代替原来m个指标变量,从而可对p个主成分进行综合分析。
(2)计算综合得分:$$Z=\sum\limits_{j=1}^pb_jy_j,$$式中:bj为第j个主成分的信息贡献率,根据综合得分值就可以评价。

2.2 模型变种

2.2.1 核主成分分析

核主成分分析是一种非线性推广的主成分分析。大量结果显示,核主成分分析法由于在非线性统计和高阶统计特征提取具有较好的效果,相对于传统的主成分分析观测数据的特点,具有更好的分类能力。 如果得到了向量空间的正交分解,是对所有训练样本的而言,那么,m个子空间的求和就构成了样本空间,也就是V = V1 ⊕ V2 ⊕ ⋯ ⊕ Vm普遍的方案是将m组变换为n个坐标轴方向,n个坐标轴方向都包含在m个组之中以使输入向量可变换成成n子向量的加和$$x= \begin{pmatrix}\\ y_1\\ y_2 \\ \vdots\\ y_n \\ \end{pmatrix}=\begin{pmatrix}\\ y_1^{(1)}\\ y_2^{(1)} \\ \vdots\\ y_n^{(1)} \\ \end{pmatrix}+\begin{pmatrix}\\ y_1^{(2)}\\ y_2^{(2)} \\ \vdots\\ y_n^{(2)} \\ \end{pmatrix}+\cdots+\begin{pmatrix}\\ y_1^{(m)}\\ y_2^{(m)} \\ \vdots\\ y_n^{(m)} \\ \end{pmatrix}$$在计算输入向量的内积时,则对其所对的子内积计算向量,每个内积分向量的定义允许有不同的定义,也就是说允许引入不同的内核,各内积分矢量的加权和构建了原有的矢量,也就是下式所示:$$k(x_1,x_2)=\sum\limits_{l=1}^m\omega_lk_l(x_i^l,x_j^l)$$其中kl(xilxjl)表示表示第l个子向量的核函数,显然如果各子向量的核函数满足Mercer条件,则k(xy)也一定满足Mercer条件,即为核函数。 基于区域核函数的距离测度算法步骤如下:
(1)给出数据块的尺寸。将原设图像与目标图像的矩阵分解若干个数据块,各个数据块按照行来累积成一个列矢量,每个列矢量累积成一个列矢量。
(2)抽取一个核函数,求出原始图像及目标图像的核目标空间的协方差矩阵。
(3)计算协方差矩阵的特征根和特征向量,按照大小将特征值排序,并取前几个(按方差贡献率确定)。
(4)将计算得出的协方差矩阵的特征向量V⃗train, V⃗test保存起来,计算出目标图像与原始图像的特征向量的距离,并按照大小进行排序,得到距离最相近的目标图像就是检索图像。
上面定义的核函数称为组合核函数,而各子向量的核函数称为局部核函数,如果使用组合核函数进行核主成分分析,则所提取的图像主成分不仅包含图像的整体特征同时又包含图像数据局部特征。

2.2.2 鲁棒主成分分析

相较于普通的主成分分析,鲁棒主成分分析是一种鲁棒性更强的改进模型,一般被用于求解被高幅度尖锐噪声而非高斯分布噪声污染的信号干扰问题。当噪声矩阵E相对于A的秩而言足够稀疏,即使在存在大的噪声或离群值的情况下,可以D=A+E中准确地恢复低秩矩阵A。其核心思想是数据矩阵在最优化准则下可以表示为一个低秩矩阵和一个稀疏矩阵的叠加。 低秩矩阵回复问题的数学模型可表示为$$\mathop{L,S}\limits^{min}~ rank(L)+\lambda||S||_0~~~~~~s.t.~~~D=L+S$$其中rank(L)表示矩阵的秩,||S||0表示矩阵S非零元的个数。 表示的含义是当低秩矩阵L的秩和稀疏矩阵S的0范数均取得最小值时,所得到的对应的LS

2.2.3 二维主成分分析

2DPCA的思想是将P × Q大小的图像矩A通过线性变换Y = Ax投影到x上。于是,得到一个P维列向量y,称之为图像A的投影特征向量。 假设有m个训练样本A1, A2, ⋯, Am,则构造q × q的总体散布矩阵:$$G_t=\frac{1}{m}\sum\limits_{i=1}^m(A_i-\bar{A})^T(A_i-\bar{A}),$$其中$$\bar{A}=\frac{1}{m}\sum\limits_{i=1}^{m}A_i$$为训练模式总体的均值矩阵。 定义准则函数:Jf(x) = xTGtx。最大化该准则函数的单位向量x称为最优投影向量。 一般来说,在样本类别数较多的情况下,单一的最优投影方向是不够的,需要寻找一组满足标准正交条件且极大化准则函数式的最优投影向量。 计算得到Gt的特征值λ1 ≥ λ2 ≥ ⋯ ≥ λi,选择前dλ1, λ2, ⋯, λd分别对应的特征向量x1, x2, ⋯, xd就是所要求的d个投影轴,xi(i=1,2,⋯,d)均为q维列向量。 对样本图像A进行特征抽取。令yi = Axi, i = 1, 2, ⋯, d,得到一组特征向量y1, y2, ⋯, yd,合并在一起构成图像A的整体投影特征矩阵:y = [y1,y2,⋯,yd] = A[x1,x2,⋯,xd],  y ∈ Rp × d

3. 模型应用

3.1 常见应用场景

根据主成分分析的定义及性质可以发现,主成分分析主要有以下几个方面的用途: #### 3.1.1 主成分分析能降低所研究的数据空间的维数。 主成分分析用研究m维的y空间代替p维的x空间(m<p),而低维的y空间代替高维的x空间所损失的信息较少。即使只有一个主成分y1(m=1)时,这个y1仍是使用全部x变量(p个)得到的。例如要计算y1的均值也得使用全部x的均值。在所选的前m个主成分中,如果某个xi的系数都近似于零的话,就可以把这个xi删除,这也是一种删除多余变量的方法。 #### 3.1.2 有时可通过因子负荷aij的结构,弄清x变量间的某些关系 例如在评价某企业的经济效益时,如果得税指标的负荷全为正值,产值指标的负荷全为负值,这似乎可以说明企业对国家的贡献主要来自于利税,利税指标是衡量企业贡献大小的主要指标。 #### 3.1.3 多维数据的一种图形表示方法。 当维数大于3时便不能画出几何图殂,而多元统计研究的问题大都多于3个变量,因此无法将问题用图形表示出来。然而,经过主成分分析后,选取前两个主成分或其中某两个主成分,根据主成分的得分,画出N个样品在二维平面上的分布情况,由图形可直观地看出各样品在主分量中的地位,进而还可对样品进行分类处理,图形发现远离大多数样本点的离群点。

3.1.4 由主成分分析法构造回归模型

即把各主成分作为新的自变量代替原来自变量x作回归分析。

3.1.5 用主成分分析筛选回归变量

回归变量的选择有着重大的实际意义,为了使模型能够更好地进行结构分析、控制和预报,应从原始变量构成的子集合中选择最佳变量,构成最佳变量子集合。 用主成分分析筛选回归变量,计算量小,易于选择最佳变量子集合。

3.2 数学建模竞赛应用

CUMCM 2011A 城市表层土壤重金属污染分析以下仅讨论问题三

3.2.1 问题复述

为了研究城市表层土壤重金属污染程度,现对某城区地质环境进行勘察调查。我们将城区划分为间距1公里左右的网格子区域,按照每平方公里1个采样点对表层土(0~10厘米深度)进行取样、编号,并用GPS 记录采样点的位置。应用专门仪器测试分析,获得了每个样本所含的多种化学元素的浓度数据。由附件1列出了8种主要重金属元素在采样点处的浓度。另一方面,按照2公里的间距在那些远离人群及工业活动的自然区取样,将其作为该城区表层土壤中元素的背景值。需分析重金属污染物的传播特征,由此建立模型。

3.2.2 目标分析与模型转化

目标分析 附件1列出了8种主要重金属元素在采样点处的浓度。要根据附录中数据,确定污染源的位置。用扩散问题的偏微分方程模型来寻找污染源。
模型转化 重金属在土壤中的传播属于一个典型的扩散问题,但是由于该城区重金属的采样点较多,给我们用扩散问题的偏微分方程模型来寻找污染源造成了很大的困难。故我们需要缩小污染源的范围。另外由于不同重金属之间可能存在相关性,即不同重金属可能来自同一个污染源,因此我们想到了用主成份分析法。[^5]因为主成份分析法不但可以减少变量的个数,大大的减少了计算量。还可以画出主因子的空间分布图,这样我们就可以我出重金属较为集中的地方,也就是能够寻到污染源的大概位置。

3.2.3 问题的求解

问题的求解过程可以分为以下步骤: 1. 利用SPSS软件计算出标准化数据的相关系数矩阵,得出金属之间的相关性 2. 计算出相关系数矩阵的特征值、方差贡献率、累计方差贡献率,确定主因子 3. 使用方差最大法,求出旋转因子的载荷矩阵,通过分析旋转因子的载荷矩阵 4. 确定哪些金属为主因子

3.2.3.1 相关性分析

相关性分析就是研究两个或两个以上变量之间的相互关系的统计分析方法。在环境研究中常用来定性的分析研究各环境变量之间的相互关系,而变量之间的相互关系用相关系数和相关系数的显著水平来表示。[^6]如果相关系数为正,表示两个变量正相关,取值越大相关性越强。相反,如果相关系数为负值,表示两个变量负相关。土壤中重金属含量的相关性可以推测出重金属是不是来自同一个污染源。如果重金属含量有着很强的相关性,表明重金属的来源可能相同,如果重金属的相关性不是很强,则重金属的来源可能不止一个。利用SPSS软件,导入附件1中的数据,进行相关性分析,得出了下表中各种重金属之间的相关系数矩阵。 |$ $ |As(μg/g)|Cd(ng/g)|Cr(μg/g)|Cu(μg/g)|Hg(ng/g)|Ni(μg/g)|Pb(μg/g)|Zn(μg/g)| |:—:|:—:|:—:|:—:|:—:|:—:|:—:|:—:|:—:| |As(μg/g)|1.000(0.000)|0.255(0.000)|0.189(0.001)|0.160(0.004)|0.064(0.251)|0.317(0.000)|0.290(0.000)|0.247(0.000)| |Cd(ng/g)|0.255(0.000)|1.000(0.000)|0.352(0.000)|0.397(0.000)|0.265(0.000)|0.329(0.000)|0.660(0.000)|0.431(0.000)| |Cr(μg/g)|0.189(0.001)|0.352(0.000)|1.000(0.000)|0.532(0.000)|0.103(0.066)|0.716(0.000)|0.383(0.000)|0.424(0.000)| |Cu(μg/g)|0.160(0.004)|0.397(0.000)|0.532(0.000)|1.000(0.000)|0.417(0.000)|0.495(0.000)|0.520(0.000)|0.387(0.000)| |Hg(ng/g)|0.064(0.251)|0.265(0.000)|0.103(0.066)|0.417(0.000)|1.000(0.000)|0.103(0.066)|0.298(0.000)|0.196(0.000)| |Ni(μg/g)|0.317(0.000)|0.329(0.000)|0.716(0.000)|0.495(0.000)|0.103(0.066)|1.000(0.000)|0.307(0.000)|0.436(0.000)| |Pb(μg/g)|0.290(0.000)|0.660(0.000)|0.383(0.000)|0.520(0.000)|0.298(0.000)|0.307(0.000)|1.000(0.000)|0.494(0.000)| |Zn(μg/g)|0.247(0.000)|0.431(0.000)|0.424(0.000)|0.387(0.000)|0.196(0.000)|0.436(0.000)|0.494(0.000)|1.000(0.000***)|
注: *  *  * 、 *  * 、*分别代表1%、5%、10%的显著性水平

3.2 主因子的确定

因子分析是通过降维方法进行简化得到综合指标,综合指标之间既互不相关,又能反映原来的观察指标的信息。我们用SPSS软件算出了特征值,贡献率和累计的贡献率。但是主成分分析法只强调离差而不是强调变量在样品中的百分含量,因此我们用正交的方差最大法使每一个主因子只与最少个数的变量有相关的关系。算出来的旋转变化后的特征值,贡献率和累计贡献率如下表所示。
从表格里可以看出,累计贡献率为70.941%的前提下,我们得到了3个主因子,也就是意味着3个主因子提供了70.941%的信息,满足主成份分析法的条件。这样大大地简化问题,且能够提供70.941%的信息,有较高的准确性。另外我们发现在旋转前后累计贡献率都是为70.941%,表明总量信息没有丢失,我们的模型具有一定的准确性。 对旋转后的数据进行分析,我们发现,因子1、2和3的贡献率大于20%,这可以说明这三个因子可能是这个地区的最大的污染源,对这个地区的环境影响最大。而4、5、6、7、8这五个因子的贡献率大概在10%以下,表明这五个因子对这个地区的污染没有1、2、3这三个因子那么重要,但是也是也对土壤有着一定影响。

3.2.3.3 求出旋转因子的载荷矩阵

将附件1中的数据使用SPSS软件进一步分析,得出如下结果:
总方差解释
成分
特征根
旋转后方差解释率
特征根
方差百分比
累积
特征根
方差百分比
累积
1
3.560
44.5%
44.5%
2.228
27.85%
27.85%
2
1.150
14.377%
58.877%
1.773
22.166%
50.016%
3
0.965
12.063%
70.941%
1.674
20.924%
70.941%
4
0.768
9.596%
80.537%
5
0.578
7.22%
87.756%
6
0.432
5.399%
93.156%
7
0.301
3.769%
96.924%
8
0.246
3.076%
100.0%

3.2.3.4 确定金属与主因子的对应关系

结合上表一起分析可以得出:重金属与因子的载荷值越大,则表示重金属和因子的关系越密切。例如Cr和Ni与因子1的载荷分别为0.894和0.879。我们就认为因子1为Cr和Ni的组合。以此类推,因子2为Cd和Pb的组合,因子3为Hg。因此Cr和Ni,Cd和Pb极有可能来自同一污染源。在前面的重金属相关性分析中,Cr和Ni,Cd和Pb都具有较好的相关性。另外的重金属则来自不同的污染源。再结合问题一中的金属在不同区域的单项污染指数,即可基本确定污染源的位置。

4. 软件/程序介绍

4.1 SSPS软件介绍

打开SPSSPRO在线操作平台,于“我的数据”中点击“上传文件”,于“数据分析”中点击“新建分析”,“开始分析”,在“选择算法”中点击相关性分析可完成相关性分析,在“选择算法”中点击“综合评价”,“因子分析(探索性)”可完成因子分析。也可在SPSSPRO客户端的notebook中直接运行以下代码。 运行以下代码注意事项: 1. 以下代码对应的数据为案例数据,可自行修改数据来完成算法运算 2. 只支持SPSSPRO客户端的notebook上调用
程序的输出结果见附件。

4.1.1 相关性分析代码

4.1.2 因子分析代码

4.2 相关程序介绍

主成分分析也可用Python程序实现,其原理与SSPS一致,输出结果为主成分系数和低维数据集。 运行以下python代码需要提前安装以下python库:
  1. numpy
  1. scipy
  1. sklearn
  1. Matplotlib
默认待处理数据已存入Myfile.xlsx文件。
matlab代码如下:
  • 2022-09-12,杨伟程校对语法及补充内容
旋转后因子载荷系数表
旋转后因子载荷系数
共同度(公因子方差)
因子1
因子2
因子3
As(μg/g)
0.115
0.795
-0.201
0.685
Cd(ng/g)
0.194
0.641
0.464
0.664
Cr(μg/g)
0.894
0.142
0.102
0.829
Cu(μg/g)
0.597
0.124
0.591
0.721
Hg(ng/g)
0.005
0.007
0.842
0.709
Ni(μg/g)
0.879
0.227
-0.001
0.823
Pb(μg/g)
0.230
0.635
0.532
0.739
Zn(μg/g)
0.444
0.491
0.259
0.505
上一篇
海明校验的公式推导及讨论
下一篇
数学建模のwiki

评论
Loading...