主成分分析法(PCA)

主成分分析法

主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。在实证问题研究中,为了全面、系统地分析问题,我们必须考虑众多影响因素。这些涉及的因素一般称为指标,在多元统计分析中也称为变量。因为每个变量都在不同程度上反映了所研究问题的某些信息,并且指标之间彼此有一定的相关性,因而所得的统计数据反映的信息在一定程度上有重叠。在用统计方法研究多变量问题时,变量太多会增加计算量和增加分析问题的复杂性,人们希望在进行定量分析的过程中,涉及的变量较少,得到的信息量较多。主成分分析正是适应这一要求产生的,是解决这类题的理想工具。

主成分分析法是一种数学变换的方法, 它把给定的一组相关变量通过线性变换转成另一组不相关的变量,这些新的变量按照方差依次递减的顺序排列。在数学变换中保持变量的总方差不变,使第一变量具有最大的方差,称为第一主成分,第二变量的方差次大,并且和第一变量不相关,称为第二主成分。依次类推,I个变量就有I个主成分。

这种方法避免了在综合评分等方法中权重确定的主观性和随意性,评价结果比较符合实际情况;同时,主成份分量表现为原变量的线性组合,如果最后综合指标包括所有分量,则可以得到精确的结果,百分之百地保留原变量提供的变差信息,即使舍弃若干分量,也可以保证将85%以上的变差信息体现在综合评分中,使评价结果真实可靠。是在实际中应用得比较广的一种方法。由于其第一主成份(因子)在所有的主成分中包含信息量最大,很多学者在研究综合评价问题时常采用第一主成分来比较不同实体间的差别。综上所述,该方法的优点主要体现在两个方面:1.权重确定的客观性;2.评价结果真实可靠。

1.主成分分析的基本原理
主成分分析:把原来多个变量划为少数几个综合指标的一种统计分析方法,是一种降维处理技术。)

记原来的变量指标为x1,x2,…,xP,它们的综合指标——新变量指标为z1,z2,…,zm(m≤p),则


z1,z2,…,zm分别称为原变量指标x1,x2,…,xP的第一,第二,…,第m主成分,在实际问题的分析中,常挑选前几个最大的主成分。


① zi与zj(i≠j;i,j=1,2,…,m)相互无关;
② z1是x1,x2,…,xP的一切线性组合中方差最大者,z2是与z1不相关的x1,x2,…,xP的所有线性组合中方差最大者;……;zm是与z1,z2,……,zm-1都不相关的x1,x2,…,xP的所有线性组合中方差最大者。

 


2.
主成分分析的计算步骤

① 计算相关系数矩阵


计算特征值与特征向量


计算主成分贡献率及累计贡献率


计算主成分载荷


主成分分析方法(举例)

 

3. 主成分分析方法应用实例
1) 实例1: 流域系统的主成分分析(张超,1984)
表3.5.1(点击显示该表)给出了某流域系统57个流域盆地的9项变量指标。其中,x1代表流域盆地总高度(m),x2代表流域盆地山口的海拔高度(m),x3代表流域盆地周长(m),x4代表河道总长度(m),x5代表河道总数,x6代表平均分叉率,x7代表河谷最大坡度(度),x8代表河源数, x9代表流域盆地面积(km2)。


注:表中数据详见书本87和88页。
(1) 分析过程:
① 将表3.5.1中的原始数据作标准化处理,然后将它们代入相关系数公式计算,得到相关系数矩阵(表3.5.2)。


② 由相关系数矩阵计算特征值,以及各个主成分的贡献率与累计贡献率(见表3.5.3)。由表3.5.3可知,第一,第二,第三主成分的累计贡献率已高达86.5%,故只需求出第一、第二、第三主成分z1,z2,z3即可。



z3
上的载荷

### 主成分分析法 (PCA) 的原理 主成分分析是一种用于降维的技术,旨在通过线性变换将一组可能存在相关性的变量转换成一组线性不相关的变量。这组新的变量被称为“主成分”,其中第一个主成分具有最大的方差,第二个主成分则是在与第一个主成分正交的前提下拥有最大方差,以此类推[^2]。 为了实现这一目标,算法会尝试找到能够最大化数据投影后方差的方向作为新坐标轴方向。这样做不仅减少维度数量,还尽可能保持了原有数据集中的重要信息[^1]。 ### 实现过程概述 具体来说,PCA 的实现通常遵循以下几个方面: #### 数据预处理 在执行 PCA 之前,需要先对输入的数据进行中心化(即减去均值),有时还需要进一步标准化(即将标准差调整为 1)。这是因为不同尺度上的特征会影响最终的结果,因此有必要使各个特征处于相似的数量级上[^3]。 #### 计算协方差矩阵求解特征值和特征向量 接着计算样本间的协方差矩阵相关系数矩阵,对该矩阵做谱分解得到对应的特征值及其相应的特征向量。这些特征向量定义了新的坐标系下的基底;而它们所关联的特征值反映了沿该方向变化的程度大小——较大的特征值意味着更多的变异被捕捉到了这条线上面。 ```matlab CM = corrcoef(SA); % 计算标准化后的数据的相关系数矩阵 [V, D] = eig(CM); % 计算相关系数矩阵的特征值D和特征向量V ``` #### 构建映射矩阵 选取前 k 个具有最高特征值的特征向量组成投影矩阵 W,这里 k 小于等于原空间维度 n 决定了输出低维表示的空间维数 m=k。此操作实际上是从高维到低维的一个线性映射 T(x)=W^T * x ,它能有效地降低原始数据集中存在的冗余度同时保留大部分有用的信息。 ```python import numpy as np def pca(X, num_components): # 中心化数据 X_meaned = X - np.mean(X , axis=0) cov_mat = np.cov(X_meaned , rowvar=False) eigen_values , eigen_vectors = np.linalg.eigh(cov_mat) sorted_index = np.argsort(eigen_values)[::-1] sorted_eigenvectors = eigen_vectors[:,sorted_index] chosen_components = sorted_eigenvectors [:,:num_components] reduced_data = np.dot(chosen_components.transpose() , X_meaned.transpose()).transpose() return reduced_data ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值