主成分分析PCA(含有详细推导过程以及案例分析matlab版)

合集下载

matlab主成分分析PCA

matlab主成分分析PCA

matlab主成分分析PCA %基于主成分分析的特征提取代码%读取原始数据,调⽤三个⼦函数,输出主成分分析结果%command%[fid,vector,v1,result]=cwprint('data.txt',145,55)function [fid,vector,v1,result]=cwprint(filename,a,b)fid=fopen(filename,'r')vector=fscanf(fid,'%g',[a,b]);fprintf('标准化结果如下:\n')v1=cwstd(vector)result=cwfac(v1);%result为因⼦载荷矩阵;最终主成分变量解释通过载荷矩阵分析得出;%对原始数据进⾏标准化function std=cwstd(vector) %矩阵标准化:消除量纲影响cwsum=sum(vector,1);[a,b]=size(vector);for i=1:afor j=1:bstd(i,j)=vector(i,j)/cwsum(j);endend%主成分分析%cwfac()函数作⽤:%计算相关系数矩阵%计算特征值和特征向量%对主成分进⾏排序%计算个特征值贡献率及累计贡献率(由于限定主成分个数<10,所以设置为累计贡献率>80%)%挑选主成分,输出主成分个数;%计算主成分载荷(主成分和原特征之间的关系:后续分析主成分含义的依据)function result=cwfac(vector)fprintf('相关系数矩阵:\n')std=corrcoef(vector); %求解相关系数矩阵(各个特证间的相关程度)fprintf('特征向量(vec)及特征值(val):\n')[vec,val]=eig(std); %求解特征向量和特征值newval=diag(val); %特征值组成对⾓矩阵[y,i]=sort(newval); %特征值从⼤到⼩排序fprintf('特征根排序:\n')for z=1:length(y)newy(z)=y(length(y)+1-z);endfprintf('%g\n',newy)rate=y/sum(y);fprintf('\n 贡献率:\n')newrate=newy/sum(newy)sumrate=0;newi=[];for k=length(y):-1:1sumrate=sumrate+rate(k);newi(length(y)+1-k)=i(k);if sumrate>0.8 %设定贡献率;>0.85为11个主成分break;endendfprintf('主成分数:%g\n\n',length(newi));fprintf('主成分在和:\n')for p=1:length(newi)for q=1:length(y)result(q,p)=sqrt(newval(newi(p)))*vec(q,newi(p));endenddisp(result)%坐标变换,得到回归⽤的输⼊数据:即:%将原始数据⽤主成分(线性⽆关)表⽰,作为回归的输⼊。

主成分分析(PCA)算法介绍及matlab实现案例

主成分分析(PCA)算法介绍及matlab实现案例

主成分分析(PCA)算法介绍及matlab实现案例主成分分析经常被⽤做模型分类时特征的降维,本篇⾸先介绍PCA的步骤,并根据步骤撰写对应的MATLAB代码,最后指明使⽤PCA的步骤。

我们在做分类时,希望提取的特征能够最⼤化将数据分开,如果数据很紧密,模型就⽐较难将其分开,如果数据⽐较离散,那么就⽐较容易分开,换句话说,数据越离散,越容易分开。

那怎么让数据离散呢?离散⼜⽤什么指标衡量呢?统计学的知识告诉我们,数据越离散,⽅差越⼤。

因此,PCA的问题就变为:寻找⼀个坐标轴,使得数据在该坐标轴上⾯离散度最⾼。

也就是寻找⼀个基使得所有数据在这个基上⾯的投影值的⽅差最⼤。

那具体怎么做呢?科学家们已经帮我们做好了,如下步骤:设有m个样本,每个样本有n个特征,组成m⾏n列的矩阵1)将每⼀列特征进⾏均值化处理,特征归⼀化,也称为数据中⼼平移到坐标原点2)求取协⽅差矩阵3)求取协⽅差矩阵的特征值和特征向量4)将特征向量按对应特征值⼤⼩从上到下按⾏排列成矩阵,取前K列组成系数矩阵matlab代码function [coffMatrix,lowData,eigValSort,explained,meanValue] = myPCA(data)%data为row⾏col列矩阵,row为样本数量,col为特征列,每⼀列代表⼀个特征[row , col] = size(data);% 求出每⼀列的均值meanValue = mean(data);% 将每⼀列进⾏均值化处理,特征归⼀化,数据中⼼平移到坐标原点normData = data - repmat(meanValue,[row,1]);%求取协⽅差矩阵covMat = cov(normData);%求取特征值和特征向量[eigVect,eigVal] = eig(covMat);% 将特征向量按对应特征值⼤⼩从上到下按⾏排列成矩阵[sortMat, sortIX] = sort(eigVal,'descend');[B,IX] = sort(sortMat(1,:),'descend');coffMatrix = eigVect(:,IX);% 排序后的特征向量就是新的坐标系lowData = normData * coffMatrix;% 分量得分explained = 100*B/sum(B);%特征值eigValSort = B;%%% [U,S,V] = svd(data);end我们在实际应⽤PCA的时候需要注意保留以下⼏个值。

PCA基本原理与MATLAB操作步骤

PCA基本原理与MATLAB操作步骤

PCA基本原理与MATLAB操作步骤PCA的基本原理:1.数据中心化:对原始数据的每一个特征进行减去其均值,使得数据的均值为0。

2.计算协方差矩阵:对中心化后的数据计算协方差矩阵,协方差矩阵反映了不同特征之间的相关性。

3.选择主成分:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。

特征值表示主成分的重要性,特征向量表示主成分的方向。

4.选择主成分数量:根据特征值的大小选择主成分的数量。

一般来说,我们可以根据特征值的累计贡献率来选择主成分数量,累计贡献率越大表示保留的信息越多。

5.生成降维后的数据:将选取的主成分组合起来,即将原始数据投影到主成分上,得到降维后的数据。

MATLAB操作步骤:1. 导入数据:使用MATLAB的csvread、xlsread等函数导入需要进行PCA的数据。

```matlabdata = csvread('data.csv');```2. 数据中心化:使用MATLAB的mean函数计算每一列数据的均值,并使用repmat函数生成与原始数据维度相同的均值矩阵,然后将原始数据减去均值矩阵。

```matlabmean_data = mean(data);centered_data = data - repmat(mean_data, size(data, 1), 1);```3. 计算协方差矩阵:使用MATLAB的cov函数计算中心化后的数据的协方差矩阵。

```matlabcov_matrix = cov(centered_data);```4. 选择主成分:使用MATLAB的eig函数对协方差矩阵进行特征值分解,得到特征值和特征向量。

```matlab[eigen_vectors, eigen_values] = eig(cov_matrix);```5.选择主成分数量:根据特征值的大小选择主成分的数量。

一般来说,我们可以计算特征值的累计贡献率,选择累计贡献率达到一定阈值的特征值数量。

matlab pca函数详解 -回复

matlab pca函数详解 -回复

matlab pca函数详解-回复PCA (Principal Component Analysis)是一种常用的降维技术,它通过线性变换将原始数据转换为一组新的无关变量,称为主成分。

本文将详细介绍Matlab中的PCA函数,并逐步解释其使用方法和原理。

一、PCA函数介绍在Matlab中,pca函数用于执行PCA操作。

其语法如下:[coeff,score,latent,tsquared,explained,mu] = pca(X)其中,X表示输入的数据矩阵。

接下来,让我们逐个解释每个输出变量的含义和用法。

1. coeff:主成分系数矩阵coeff是一个大小为[p,p]的矩阵,其中p是原始数据矩阵X的列数。

每一列是一个主成分向量,按照特征值降序排列。

通过将数据投影到主成分系数矩阵的列向量上,可以得到降维后的数据。

2. score:主成分得分矩阵score是一个大小为[n,p]的矩阵,其中n是原始数据矩阵X的行数。

它表示每个样本在每个主成分上的得分。

得分可以用于可视化和分类等任务。

3. latent:主成分的特征值向量latent是一个长度为p的向量,其中存储了每个主成分的特征值。

特征值可以用来评估每个主成分的重要性。

4. tsquared:每个样本的Hotelling T平方统计量tsquared是一个大小为[n,1]的矩阵,其中存储了每个样本在投影空间中的Hotelling T平方统计量。

该统计量可以用于检测异常值。

5. explained:方差解释百分比向量explained是一个长度为p的向量,其中存储了每个主成分解释的方差百分比。

它可以帮助我们选择保留多少主成分。

通常,我们选择解释方差百分比大于某个阈值的主成分。

6. mu:每个特征的均值向量mu是一个长度为p的向量,其中存储了每个特征的均值。

在PCA执行之前,数据会被减去均值,以确保每个特征的均值为零。

二、使用PCA函数进行降维现在,我们将在一个实例数据集上使用PCA函数进行降维,并逐步解释每个步骤的细节。

学点统计:主成分分析(PCA)是怎么降维分析的?内含代码+教程

学点统计:主成分分析(PCA)是怎么降维分析的?内含代码+教程

学点统计:主成分分析(PCA)是怎么降维分析的?内含代码+教程要什么资料直接添加科研小助理现在后台发消息我这边不太好接收啦背景介绍多元统计分析multivariate statistical analysis研究客观事物中多个变量(或多个因素)之间相互依赖的统计规律性。

它的重要基础之一是多元正态分析,又称多元分析。

20世纪30年代,R.A.费希尔,H.霍特林,许宝碌以及S.N.罗伊等人作出了一系列奠基性的工作,使多元统计分析在理论上得到迅速发展。

50年代中期,随着电子计算机的发展和普及,多元统计分析在地质、气象、生物、医学、图像处理、经济分析等许多领域得到了广泛的应用,同时也促进了理论的发展。

各种统计软件包如SAS,SPSS等,使实际工作者利用多元统计分析方法解决实际问题更简单方便。

重要的多元统计分析方法有:多重回归分析(简称回归分析)、判别分析、聚类分析、主成分分析、对应分析、因子分析、典型相关分析、多元方差分析等。

主成分分析(PCA)又称主分量分析,是将多个变量通过线性变换以选出较少个数重要变量的一种方法。

主要目的是希望用较少的变量去解释原来资料中的大部分变量,将我们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量。

通常是选出比原始变量个数少,能解释大部分资料中变量的几个新变量,即所谓主成分,并用以解释资料的综合性指标。

由此可见,主成分分析实际上是一种降维方法。

分析步骤1.将原始数据按行排列组成矩阵X2.对X进行数据标准化,使其均值变为零3.求X的协方差矩阵C4.将特征向量按特征值由大到小排列,取前k个按行组成矩阵P5.通过计算Y = PX,得到降维后数据Y6.用下式计算每个特征根的贡献率Vi;Vi=xi/(x1+x2+........)根据特征根及其特征向量解释主成分物理意义。

PCA运行•主成分计算•主成分选择,方差累计贡献度75%以上•因子负载荷图•带有标签的PCA图3D-PCA•3D图•图例•导入到PPT中进一步修改图片。

PCA(主成分分析)降维算法详解和代码

PCA(主成分分析)降维算法详解和代码

PCA(主成分分析)降维算法详解和代码PCA的原理:1.中心化数据:对原始数据进行中心化处理,即将每个特征减去其均值,使得数据以原点为中心。

2.计算协方差矩阵:计算中心化后的数据的协方差矩阵。

协方差矩阵描述了不同特征之间的关系和相关性。

3.计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。

特征值代表每个特征的重要性,特征向量表示特征的方向。

4.选择主成分:根据特征值的大小,选择最大的k个特征值对应的特征向量作为主成分。

5.降维:将原始数据投影到所选主成分上,得到降维后的数据。

投影后的数据保留了最重要的特征,且维度减少。

PCA的代码实现:下面是一个基于Numpy库实现PCA算法的示例代码:```pythonimport numpy as npdef pca(X, k):#中心化数据X = X - np.mean(X, axis=0)#计算协方差矩阵cov = np.cov(X.T)#特征值分解eigvals, eigvecs = np.linalg.eig(cov)#选择主成分idx = np.argsort(eigvals)[::-1][:k]eigvecs = eigvecs[:, idx]#降维X_pca = np.dot(X, eigvecs)return X_pca#测试X = np.random.rand(100, 5) # 生成100个样本,每个样本有5个特征k=2#目标降维维度X_pca = pca(X, k)print(X_pca.shape) # 输出降维后的数据维度```在上述代码中,使用`numpy`库进行了主成分分析的各个步骤。

首先,通过计算均值,对原始数据进行中心化。

然后,使用`cov`函数计算协方差矩阵,并通过`numpy.linalg.eig`函数进行特征值分解。

接下来,通过`argsort`函数对特征值进行排序,选择前k个特征值对应的特征向量作为主成分。

主成分分析(PCA)数学原理详解

主成分分析(PCA)数学原理详解

主成分分析(PCA)数学原理详解PCA的数学原理可以分为以下几个步骤:1.数据中心化PCA首先将原始数据进行中心化处理,即将每个特征的均值减去相应特征的平均值,这是因为PCA假设数据围绕着原点分布,中心化可以消除数据的平移影响。

2.协方差矩阵的计算PCA的关键是计算数据的协方差矩阵。

协方差矩阵描述了不同特征之间的相关性。

对于一个n维的数据集,协方差矩阵是一个n×n的矩阵,其中第(i,j)个元素表示第i个特征和第j个特征的协方差。

协方差矩阵的计算公式如下:$C = \frac{1}{n-1} \sum _{i=1}^{n}(X_i - \overline{X})(X_i - \overline{X})^T$其中,X是一个n×m的矩阵,表示n个样本的m个特征,$\overline{X}$ 表示特征均值向量协方差矩阵是一个对称矩阵,通过对协方差矩阵的特征值分解,可以得到特征值和特征向量。

3.特征值和特征向量的计算对协方差矩阵进行特征值分解,可以得到特征值和对应的特征向量。

特征值代表了数据在特征向量方向上的方差,而特征向量表示了数据的主成分方向。

设协方差矩阵为C,有如下特征值方程:$Cv = \lambda v$其中,v是特征向量,λ是特征值。

将特征值按从大到小的顺序排序,选择前k个最大的特征向量,即主成分,作为新的基向量。

这些特征向量构成了一个新的坐标系,用于表示原始数据的新坐标。

4.数据转换将原始数据投影到新的坐标系上,得到降维后的数据。

设原始数据集为X,新的基向量为V(由前k个特征向量组成),降维后的数据集为Y,可以通过如下公式计算:$Y=XV$其中,X是一个n×m的矩阵,表示n个样本的m个特征,V是一个m×k的矩阵,Y是一个n×k的矩阵。

通过PCA降维,可以获得降维后的数据集Y,它是一个n×k的矩阵。

总结:主成分分析(PCA)通过计算数据的协方差矩阵,得到协方差矩阵的特征值和特征向量。

主成分分析报告matlab程序

主成分分析报告matlab程序

主成分分析报告matlab程序主成分分析报告 Matlab 程序在数据分析和处理的领域中,主成分分析(Principal Component Analysis,PCA)是一种常用且强大的工具。

它能够将多个相关变量转换为一组较少的不相关变量,即主成分,同时尽可能多地保留原始数据的信息。

在 Matlab 中,我们可以通过编写程序来实现主成分分析,这为我们的数据处理和理解提供了极大的便利。

主成分分析的基本思想是找到数据中的主要方向或模式。

这些主要方向是通过对数据的协方差矩阵进行特征值分解得到的。

最大的特征值对应的特征向量就是第一主成分的方向,第二大的特征值对应的特征向量就是第二主成分的方向,以此类推。

在 Matlab 中,我们首先需要导入数据。

假设我们的数据存储在一个名为`data` 的矩阵中,每一行代表一个观测值,每一列代表一个变量。

```matlabdata = load('your_data_filetxt');%替换为您的数据文件路径```接下来,我们需要对数据进行中心化处理,即每个变量减去其均值。

```matlabcentered_data = data repmat(mean(data), size(data, 1), 1);```然后,计算协方差矩阵。

```matlabcov_matrix = cov(centered_data);```接下来进行特征值分解。

```matlabV, D = eig(cov_matrix);````V` 是特征向量矩阵,`D` 是对角矩阵,其对角元素是特征值。

我们对特征值进行从大到小的排序,并相应地对特征向量进行重新排列。

```matlablambda, index = sort(diag(D),'descend');sorted_V = V(:, index);```此时,`sorted_V` 的每一列就是一个主成分的方向。

为了计算每个观测值在主成分上的得分,我们可以使用以下代码:```matlabprincipal_components = centered_data sorted_V;```我们还可以计算每个主成分解释的方差比例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主成分分析法(PCA)在实际问题中,我们经常会遇到研究多个变量的问题,而且在多数情况下,多个变量之间常常存在一定的相关性。

由于变量个数较多再加上变量之间的相关性,势必增加了分析问题的复杂性。

如何从多个变量中综合为少数几个代表性变量,既能够代表原始变量的绝大多数信息,又互不相关,并且在新的综合变量基础上,可以进一步的统计分析,这时就需要进行主成分分析。

I. 主成分分析法(PCA)模型(一)主成分分析的基本思想主成分分析是采取一种数学降维的方法,找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,而且彼此之间互不相关。

这种将把多个变量化为少数几个互相无关的综合变量的统计分析方法就叫做主成分分析或主分量分析。

主成分分析所要做的就是设法将原来众多具有一定相关性的变量,重新组合为一组新的相互无关的综合变量来代替原来变量。

通常,数学上的处理方法就是将原来的变量做线性组合,作为新的综合变量,但是这种组合如果不加以限制,则可以有很多,应该如何选择呢?如果将选取的第一个线性组合即第一个综合变量记为1F ,自然希望它尽可能多地反映原来变量的信息,这里“信息”用方差来测量,即希望)(1F Var 越大,表示1F 包含的信息越多。

因此在所有的线性组合中所选取的1F 应该是方差最大的,故称1F 为第一主成分。

如果第一主成分不足以代表原来p 个变量的信息,再考虑选取2F 即第二个线性组合,为了有效地反映原来信息,1F 已有的信息就不需要再出现在2F 中,用数学语言表达就是要求0),(21=F F Cov ,称2F 为第二主成分,依此类推可以构造出第三、四……第p 个主成分。

(二)主成分分析的数学模型对于一个样本资料,观测p 个变量p x x x ,,21,n 个样品的数据资料阵为:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=np n n p p x x x x x x x x x X212222111211()p x x x ,,21=其中:p j x x x x nj j j j ,2,1,21=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛= 主成分分析就是将p 个观测变量综合成为p 个新的变量(综合变量),即⎪⎪⎩⎪⎪⎨⎧+++=+++=+++=ppp p p p p p p p x a x a x a F x a x a x a F x a x a x a F 22112222121212121111 简写为:p jp j j j x x x F ααα+++= 2211p j ,,2,1 =要求模型满足以下条件:①j i F F ,互不相关(j i ≠,p j i ,,2,1, =)②1F 的方差大于2F 的方差大于3F 的方差,依次类推③.,2,1122221p k a a a kp k k ==+++于是,称1F 为第一主成分,2F 为第二主成分,依此类推,有第p 个主成分。

主成分又叫主分量。

这里ij a 我们称为主成分系数。

上述模型可用矩阵表示为:AX F =,其中⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=p F F F F 21 ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=p x x x X 21 ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=p pp p p p p a a a a a a a a a a a a A 21212222111211 A 称为主成分系数矩阵。

(三)主成分分析的几何解释假设有n 个样品,每个样品有二个变量,即在二维空间中讨论主成分的几何意义。

设n 个样品在二维空间中的分布大致为一个椭园,如下图所示:图1 主成分几何解释图将坐标系进行正交旋转一个角度θ,使其椭圆长轴方向取坐标1y ,在椭圆短轴方向取坐标2y ,旋转公式为⎩⎨⎧+-=+=θθθθcos )sin (sin cos 212211j j jj j j x x y x x y n j 2,1=写成矩阵形式为:⎥⎦⎤⎢⎣⎡=n n y y y y y y Y 2222111211X U x x x x x x n n ⋅=⎥⎦⎤⎢⎣⎡⋅⎥⎦⎤⎢⎣⎡-=2222111211cos sin sin cos θθθθ 其中U 为坐标旋转变换矩阵,它是正交矩阵,即有I U U U U ='='-,1,即满足1cos sin 22=+θθ。

经过旋转变换后,得到下图的新坐标:图2 主成分几何解释图新坐标21y y -有如下性质:(1)n 个点的坐标1y 和2y 的相关几乎为零。

(2)二维平面上的n 个点的方差大部分都归结为1y 轴上,而2y 轴上的方差较小。

1y 和2y 称为原始变量1x 和2x 的综合变量。

由于n 个点在1y 轴上的方差最大,因而将二维空间的点用在1y 轴上的一维综合变量来代替,所损失的信息量最小,由此称1y 轴为第一主成分,2y 轴与1y 轴正交,有较小的方差,称它为第二主成分。

II. 主成分分析法(PCA)推导一、主成分的导出根据主成分分析的数学模型的定义,要进行主成分分析,就需要根据原始数据,以及模型的三个条件的要求,如何求出主成分系数,以便得到主成分模型。

这就是导出主成分所要解决的问题。

1、根据主成分数学模型的条件①要求主成分之间互不相关,为此主成分之间的协差阵应该是一个对角阵。

即,对于主成分,AX F =其协差阵应为,A X AX AX AX AX Var F Var ''='⋅==)()()()(=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=Λp λλλ 21 2、设原始数据的协方差阵为V ,如果原始数据进行了标准化处理后则协方差阵等于相关矩阵,即有,X X R V '==3、再由主成分数学模型条件③和正交矩阵的性质,若能够满足条件③最好要求A 为正交矩阵,即满足I A A ='于是,将原始数据的协方差代入主成分的协差阵公式得Λ='=''=A AR A X AX F Var )(Λ'='Λ='A A R A AR展开上式得 ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⋅⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⋅⎪⎪⎪⎪⎪⎭⎫ ⎝⎛p pp p p p p pp p p p p pp p p p p a a a a a a a a a a a a a a a a a a r r r r r r r r r λλλ 21212221212111212221212111212222111211 展开等式两边,根据矩阵相等的性质,这里只根据第一列得出的方程为:()⎪⎪⎩⎪⎪⎨⎧=-+++=++-+=+++-0)(0)(0111221111212122112111121211111p pp p p p p p p a r a r a r a r a r a r a r a r a r λλλ 为了得到该齐次方程的解,要求其系数矩阵行列式为0,即0121212221112111=---λλλpp p p p p r r r r r r r r r01=-I R λ显然,1λ是相关系数矩阵的特征值,()p a a a a 112111,, =是相应的特征向量。

根据第二列、第三列等可以得到类似的方程,于是i λ是方程 0=-I R λ的p 个根,i λ为特征方程的特征根,j a 是其特征向量的分量。

4、下面再证明主成分的方差是依次递减设相关系数矩阵R 的p 个特征根为p λλλ≥≥≥ 21,相应的特征向量为j a⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=p pp p p p p a a a a a a a a a a a a A 21212222111211 相对于1F 的方差为 111111)(λ='=''=a R a a X X a F Var 同样有:i i F Var λ=)(,即主成分的方差依次递减。

并且协方差为:j i j i Ra a X a X a Cov '=''),(j pi a a a a )(1∑=''=ααααλ j i a a a a j i p ≠=''=∑=,0))((1ααααλ综上所述,根据证明有,主成分分析中的主成分协方差应该是对角矩阵,其对角线上的元素恰好是原始数据相关矩阵的特征值,而主成分系数矩阵A 的元素则是原始数据相关矩阵特征值相应的特征向量。

矩阵A 是一个正交矩阵。

于是,变量()p x x x ,,21经过变换后得到新的综合变量 ⎪⎪⎩⎪⎪⎨⎧+++=+++=+++=ppp p p p p p p p x a x a x a F x a x a x a F x a x a x a F 22112222121212121111 新的随机变量彼此不相关,且方差依次递减。

二、主成分分析的计算步骤假设样本观测数据矩阵为:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=np n n p p x x x x x x x x x X 212222111211 第一步:对原始数据进行标准化处理。

)var(*j j ij ij x x x x -= ),,2,1;,,2,1(p j n i ==其中 ∑==ni ij j x n x 11 21)(11)var(j n i ij j x x n x --=∑= ),,2,1(p j =第二步:计算样本相关系数矩阵。

⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=pp p p p p r r r r r r r r r R 212222111211 为方便,假定原始数据标准化后仍用X 表示,则经标准化处理后的数据的相关系数为:tj nt ti ij x x n r ∑=-=111 ),,2,1,(p j i =第三步:用雅克比方法求相关系数矩阵R 的特征值(p λλλ 21,)和相应的特征向量()p i a a a a ip i i i 2,1,,,21==。

第四步:选择重要的主成分,并写出主成分表达式。

主成分分析可以得到p 个主成分,但是,由于各个主成分的方差是递减的,包含的信息量也是递减的,所以实际分析时,一般不是选取p 个主成分,而是根据各个主成分累计贡献率的大小选取前k 个主成分,这里贡献率就是指某个主成分的方差占全部方差的比重,实际也就是某个特征值占全部特征值合计的比重。

即贡献率=∑=p i ii1λλ 贡献率越大,说明该主成分所包含的原始变量的信息越强。

主成分个数k 的选取,主要根据主成分的累积贡献率来决定,即一般要求累计贡献率达到85%以上,这样才能保证综合变量能包括原始变量的绝大多数信息。

另外,在实际应用中,选择了重要的主成分后,还要注意主成分实际含义解释。

主成分分析中一个很关键的问题是如何给主成分赋予新的意义,给出合理的解释。

相关文档
最新文档