主成分分析及一些函数_第1页
主成分分析及一些函数_第2页
主成分分析及一些函数_第3页
主成分分析及一些函数_第4页
主成分分析及一些函数_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主成分分析主成分概念首先由 Karl Parson在1901年引进,当时只对非随机变量来讨论 的。1933年Hotelling将这个概念推广到随机变量。在多数实际问题中,不同指标之间是有一定相关性。由于指标较多及指标间 有一定的相关性,势必增加分析问题的复杂性。主成分分析就是设法将原来指标重新组合成一组新的互相无关的几个综合 指标来代替原来指标。同时根据实际需要从中可取几个较少的综合指标尽可能多 地反映原来的指标的信息。主成分分析(Principal ComponentAnalysis, PCA), 将多个变量通过线性变 换以选出较少个数重要变量的一种多元统计分析方法。又称主分量分析。在实际课

2、题中,为了全面分析问题,往往提出很多与此有关的变量(或因素),因为每个变量都在不同程度上反映这个课题的某些信息。主成分分析首先是由K皮尔森 对非随机变量引入的,尔后 H.霍特林将此方法推广到随机向量的情形。信息的 大小通常用离差平方和或方差来衡量。主成分分析是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。通常数学上的处理就是将原来P个指标作线性组合,作为新的综合指标。最经典的做法就是用F1 (选取的第一 个线性组合,即第一个综合指标)的方差来表达,即Var(F1越大,表示F1包含的信息越多。因此在所有的线性组合中选取的 F1应该是方差最大的

3、,故称F1为 第一主成分。如果第一主成分不足以代表原来P个指标的信息,再考虑选取 F2即选第二个线性组合,为了有效地反映原来信息,F1已有的信息就不需要再出现再F2中,用数学语言表达就是要求 Cov(F1,F2)=0,则称F2为第二主成分,依 此类推可以构造出第三、第四,第P个主成分。程序:function lambda,T,fai=MSA2(A)%求标准化后的协差矩阵,再求特征根和特征向量%标准化处理p, n=size(A);for j=1: nmju(j)=mea n(A(:,j);sigma(j)=sqrt(cov(A(:,j);endfor i=1:pfor j=1: nY(i,j)=

4、(A(i,j)-mju(j)/sigma(j);endendsigmaY=cov(Y);%求X标准化的协差矩阵的特征根和特征向量T,lambda=eig(sigmaY);disp('特征根(由小到大):'); disp(lambda);disp('特征向量:');disp(T);% 方差贡献率;Xsum=sum(sum(lambda,2),1); for i=1: n fai(i)=lambda(i,i)/Xsum; enddisp('方差贡献率:'); disp(fai);u=T(:, n);B=;h=le ngth(A(:,1); for k

5、=1: nm1=mea n( A(:,k); t=(A(:,k)-m1).A2; m2=sqrt(sum(t)/(h-1);B=B,(A(:,k)-m1)./m2;EndV = var(X)如果X是一个向量,返回向量 X的方差。如果X是一个矩阵,var(X返回一个包含矩阵X每一列方差的行向量。如果X是一个N维数组,var沿着第一个X的非单一维进行操作。只要X是独立同分布的,结果V是X分布的总体方差的无偏估计。当N>1时,var由N-1来标准化,其中N是样本大小。只要样本是独立同分布的,它就是 X分布的总体方差的无偏估计。对 N=1来 说,v由N来标准化。V = var(X,1)由N来标准

6、化,并且生成了样本关于其均值的二阶矩,var(X,O)等价于var(X)V = var(X,w)计算向量X的方差利用权重向量w,向量w中元素的数目必须和X中的列的 数目相同,向量w中的元素必须全是正数。var归一化w是的总和为1。V = var(X,w,dim)沿着指定维数dim求X的方差,默认用N-1标准化这时w为0,w为1时用 N标准化。方差是其标准差(STD的平方.应用举例编辑本段回目录x=4,6,4,3,5,7var(x)an s = 2.1667R= corrcoef(X)返回相关系数矩阵R,对行是观测值、列是变量的矩阵X计算相关系数得到相关系数矩阵Ro阵R=corrcoef(X与协

7、方差矩阵C=cov(X有以下关系:y)=C(i, j)i)ca 力R= corrcoef(x,y)如果x和y都是列向量,那么其功能和 corrcoef(xy)是相同的。如果x和y不是列向量,corrcoef函数转化他们为列向量,例如,在这种情况 下 R=corrcoef(x,y)是等价于 R=corrcoef(x(:)y(:)。 book.iLoveMR,P=corrcoef(.J返回R,P含有p值的矩阵是为了测试不相关性,每个p值是相关性的概率值, 真正的相关性,p值应该为0o如果p(i,j)很小的情况下,一般设置小于0.05,我们也认为相关系数R(i,j)也是 有意义的。R,P,RLO,R

8、UP=corrcoef(.J返回矩阵RLO和RUP它们是和R有相同的大小,对每个系数包含一个在95% 置信区间的上下界。.=corrcoef(.,'param1',val1,'param2',val2,.)www.iLoveMatlab.c n指定其他参数和它们的值,有效的参数如下:'alpha'是一个0到1之间的数,指定了 100*(1 - alpha)%的置信水平,默认是 0.05相对于95%的置信区间。'rows' 'all'(默认)作用于所有行,complete'作用于没有非数 (NaN)的行, &

9、#39;pairwise'是计算R(i,j)用列i或者j中不是非数的值。应用举例编辑本段回目录生成随机数据其中第4列和其他列相关x = randn( 30,4); % Un correlated datax(:,4) = sum(x,2);% Introduce correlation.r,p = corrcoef(x) % Compute samplecorrelation and p-values.i,j = find(p<0.05); % Find significant correlations.i,j % Displaytheir (row,col) in dices.

10、1.0000-0.35660.1929 0.3457 -0.35661.0000 -0.1429 0.44610.1929 -0.14291.0000 0.51830.3457 0.4461 0.5183 1.0000p =1.00000.0531 0.3072 0.06130.0531 1.00000.4511 0.01350.3072 0.4511 1.00000.00330.06130.01350.00331.0000ans =42432 434cov(x)如果x是一个向量,cov(x)返回x中元素的方差。如果x是一个矩阵,并且是各行为观测值、各列为变量的矩阵,cov(x)计算x的协方差

11、。diag(cov(X)是包含每列的方差的向量,sqrt(diag(cov(X)是包含标准差 的向量。当X和丫是大小相同的矩阵时,cov(X,Y等价于cov(X(:)Y(:)。 Matlab 中文论坛cov(x)或 cov(x,y)用N-1规范化如果N>1,其中N是观测值的个数。如果观测值属于正态分布, 那么cov(x)可以达到协方差最好的无偏估计。如果N=1用N去规范化。cov(x,1或 cov(x,y,1)www.iLoveM用N来规范化,cov(X,Y,0H cov(X,丫是功能相同的,cov(X,0和cov(X)是功能相 同的。备注 编辑本段回目录cov在计算结果前对每一列删除平

12、均值。 协方差函数定义为:其中E是数学期望并且有应用举例 编辑本段回目录考虑A=-1 12;-231 ;403,对A每一列求方差:v = diag(cov(A)'v =10.33332.33331.0000比较v和协方差C:C=cov(A)C=10.3333-4.16673.0000-4.1667 2.3333-1.50003.0000 -1.50001.0000(1) s 二n是元素的个数,上面两个等式的不同仅仅在于被除数,一个是 n, 一个是n-1。Xs = std(X)如果X是一个向量,用上面公式(1)返回标准差。结果s是数据X分布的无偏估计方差的平方根,只要数据X是有独立同分布

13、样本组成。如果X是一个矩阵,std(X)返回一个包含每一列所有元素的标准差的行向量。如果A是一个多元数组,std(X)将沿着数组X中第一个非单一维的值来计算标 准差。s = std(X,flag)若flag = 0,这个命令和s = std(X)功能相同。若flag = 1,std(X,1)用上面公式2来计算标准差s = std(X,flag,dim)用指定的标量dim沿着数据X的维数来计算标准差,设置flag为0用n-1去 标准化X,设置flag为1用n去标准化。应用举例 编辑本段回目录对于矩阵XX =1597 1522s = std(X,0,1)s =4.2426 7.0711 9.192

14、4s = std(X,0,2)4.0007.5056d=eig(A)返回矩阵A特征值的一个向量dod=eig(A,B)如果A和B是方阵的,返回包含广义特征的向量。注意:如果S是稀疏对称的,用d = eig(S)可以返回S的特征值。如果S是稀疏 但不对称,若要想得到S的特征向量,用函数eigs代替eigoV,D=eig(A)计算矩阵A的特征值D和特征矩阵V,满足A*V = V*D。矩阵D是矩阵A的规范 形式:主对角线上的元素是矩阵 A的特征值的对角矩阵。V,D = eig(A,' nobala nee')当矩阵A中有与截断误差数量级相差不远的值时,改命令可能更加精确,'n obala nee

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论