主成分分析及matlab实现..

合集下载

主成分分析 MATLAB代码

主成分分析 MATLAB代码
T=L(:,1)+L(:,2)+L(:,3)+L(:,4); %计算T统计量
%特征向量图(效果等价于主成分载荷图)
figure(4); %创造第二个图形窗口
e1=-E(:,1);e2=-E(:,2); %提取特征向量并转换符号
Co2=Co1+A(:,2).^2; %提取2个主成分的公因子方差
Co3=Co2+A(:,3).^2; %提取3个主成分的公因子方差
Co4=Co3+A(:,4).^2; %提取4个主成分的公因子方差
Rz=cov(F); %计算协方差矩阵
Rz=corrcoef(F); %计算相关系数矩阵
Rz=corrcoef(Z); %计算相关系数矩阵
%计算非标准化数据协方差矩阵的三种方法
Covz=Z'*Z/(n-1); %计算协方差矩阵
Covz=cov(Z); %计算协方差矩阵
%计算主成分得分相关系数的四种方法
Rz=F'*F/(n-1); %计算相关系数矩阵
grid on %添加网格
%几个用于检验的语句
%计算再生相关系数矩阵
Rp=H*H'; %计算再生相关矩阵
Re=R-Rp; %计算相关矩阵的残差矩阵
%综合得分
S=Z(:,1)+Z(:,2)+Z(:,3)+Z(:,4) %非标准化得分四列加和
S1=F(:,1)*eigv(1)^0.5+F(:,2)*eigv(2)^0.5+F(:,3)*eigv(3)^0.5+F(:,4)*eigv(4)^0.5
%计算T平方统计量(2)
eigv=diag(G); %提取角矩阵的对角线元素

主成分分析matlab理论+实验

主成分分析matlab理论+实验
x2
x1
若将该坐标系按逆时针方向旋转某个角度θ变成新坐标系,变 换公式为
Y1 X 1 cos X 2 sin Y2 X 1 sin X 2 cos
y2 x2
y1
x1
记x1,x2,…,xP为原变量指标,z1,z2,…,zm(m<p)为新
变量指标
z1 a11 x1 a12 x2 L a1 p x p z2 a21 x1 a22 x2 L a2 p x p ............ z a x a x L a x m1 1 m2 2 mp p m
七. 主成分分析的应用
1. 综合评价 进行综合评价时,如何选择评价指标以及对这些指标进 行综合评价?一般做法是通过对各指标加权的办法。 由于主成分分析能从选定的指标体系中归纳出大部分信 息,根据主成分提供的信息进行综合评价,不失为一个可行 的选择。
利用主成分进行综合评价时,对主成分进行加权综合, 权数根据其方差贡献率确定 。
例5-3 用Matlab自带数据进行主成分分析,数据文件. hald文件包含影响温度的4个因素,保存在ingredients变量 中。代码见5.3.m
第一步:考虑变量之间相关性 load hald %载入Matlab 自带的数据文件 corrcoef(ingredients) % 自变量相关系数矩阵 ans = 1.0000 0.2286 -0.8241 -0.2454 0.2286 1.0000 -0.1392 -0.9730 -0.8241 -0.1392 1.0000 0.0295 -0.2454 -0.9730 0.0295 1.0000 第二步:主成分分析 [pc,score,latent,tsquare]=princomp(ingredients)

主成分分析及其MATLAB实现

主成分分析及其MATLAB实现

比 数为P , =^ , . 例系 / e / A
2 样 本 主成 分 介绍
上面讨论的是全面的总体的主成分 , 但在现实 问题中 , 大多数 ∑( 或 ) 是不知道的 , 需要通过所
给 的样本来 估 计. 令 ‘= ( l , ,妇 ri= 12 ・ ,. i … ) , , ,,・ , ・1
= , t ’= 1, … , 2, p,
第i 个主要成分 的贡献 比率 : ; m个主要 生 前

 ̄ “ /
∑A ,
成分的累加计贡献 比率 : ; 与 的相关
其中 =E 墨) = VrX) 这时 ( , a( i.


( , , , ) … ‘
造企 业为研 究对 象 , 经 济效 益 出发 选取 8个指 标 , 用主 成 分 分析 法对 选取 指标 进 行 分析 , 从 利 利 用 Maa db软件 对 1 4家机 械制 造 企业 的 经 济效益 进 行 了计 算和 排 名 , 黑龙 江省 今后 实现 企 业 为 间经 济发展协 调提 供参 考依 据 . 关 键词 : 主 成分 分析 ; 润指标 ; T A 利 MA L B
表1 1 4家企 业的 利润指 标 的统 计数 据
样本均值 向量为 :

(7991.5 . 0 .4 1041. 1 .5 4 66 . 2.7 0 909 1085 31.6 4 641521.8 )
1 8 3 3 6 . 5 4 . 5 4 . 1 5 . 0 7 . 7 8 6 2 1 1 6 0 6 . 3 0 3 7 5 77 12 5 7 96 16 2 .0 0 .2
中图分 类号 : 0 1 22 文 献标 识码 : A
并且

matlab主成分分析法[统计学经典理论]

matlab主成分分析法[统计学经典理论]

§10.利用Matlab 编程实现主成分分析1.概述Matlab 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。

它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。

它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言的便捷接口的功能。

Matlab 语言在各国高校与研究单位起着重大的作用。

主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术。

1.1主成分分析计算步骤 ① 计算相关系数矩阵 ⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=pp p p p p r r r r r r r r r R 212222111211 (1) 在(3.5.3)式中,r ij (i ,j=1,2,…,p )为原变量的xi 与xj 之间的相关系数,其计算公式为 ∑∑∑===----=n k n k j kj i ki n k j kj i ki ij x x x x x x x x r 11221)()())(( (2) 因为R 是实对称矩阵(即r ij =r ji ),所以只需计算上三角元素或下三角元素即可。

② 计算特征值与特征向量首先解特征方程0=-R I λ,通常用雅可比法(Jacobi )求出特征值),,2,1(p i i =λ,并使其按大小顺序排列,即0,21≥≥≥≥pλλλ ;然后分别求出对应于特征值i λ的特征向量),,2,1(p i e i =。

这里要求i e =1,即112=∑=p j ij e ,其中ij e 表示向量i e 的第j 个分量。

③ 计算主成分贡献率及累计贡献率 主成分i z 的贡献率为),,2,1(1p i p k k i =∑=λλ 累计贡献率为 ),,2,1(11p i pk k i k k =∑∑==λλ一般取累计贡献率达85—95%的特征值m λλλ,,,21 所对应的第一、第二,…,第m (m ≤p )个主成分。

主成分分析及MATLAB应用 代码

主成分分析及MATLAB应用 代码

主成分分析类型:一种处理高维数据的方法。

降维思想:在实际问题的研究中,往往会涉及众多有关的变量。

但是,变量太多不但会增加计算的复杂性,而且也会给合理地分析问题和解释问题带来困难。

一般说来,虽然每个变量都提供了一定的信息,但其重要性有所不同,而在很多情况下,变量间有一定的相关性,从而使得这些变量所提供的信息在一定程度上有所重叠。

因而人们希望对这些变量加以“改造”,用为数极少的互补相关的新变量来反映原变量所提供的绝大部分信息,通过对新变量的分析达到解决问题的目的。

一、总体主成分1.1 定义设 X 1,X 2,…,X p 为某实际问题所涉及的 p 个随机变量。

记 X=(X 1,X 2,…,Xp)T ,其协方差矩阵为()[(())(())],T ij p p E X E X X E X σ⨯∑==--它是一个 p 阶非负定矩阵。

设1111112212221122221122Tp p Tp pT pp p p pp p Y l X l X l X l X Y l X l X l X l X Y l X l X l X l X⎧==+++⎪==+++⎪⎨⎪⎪==+++⎩ (1) 则有()(),1,2,...,,(,)(,),1,2,...,.T T i i i i TT T i j ijij Var Y Var l X l l i p Cov Y Y Cov l X l X l l j p ==∑===∑= (2)第 i 个主成分: 一般地,在约束条件1T i i l l =及(,)0,1,2,..., 1.T i k i k Cov Y Y l l k i =∑==-下,求 l i 使 Var(Y i )达到最大,由此 l i 所确定的T i i Y l X =称为 X 1,X 2,…,X p 的第 i 个主成分。

1.2 总体主成分的计算设 ∑是12(,,...,)T p X X X X =的协方差矩阵,∑的特征值及相应的正交单位化特征向量分别为120p λλλ≥≥≥≥及12,,...,,p e e e则 X 的第 i 个主成分为1122,1,2,...,,T i i i i ip p Y e X e X e X e X i p ==+++= (3)此时(),1,2,...,,(,)0,.Ti i i i Ti k i k Var Y e e i p Cov Y Y e e i k λ⎧=∑==⎪⎨=∑=≠⎪⎩ 1.3 总体主成分的性质1.3.1 主成分的协方差矩阵及总方差记 12(,,...,)T p Y Y Y Y = 为主成分向量,则 Y=P T X ,其中12(,,...,)p P e e e =,且12()()(,,...,),T T p Cov Y Cov P X P P Diag λλλ==∑=Λ=由此得主成分的总方差为111()()()()(),p ppTTiii i i i Var Y tr P P tr PP tr Var X λ=====∑=∑=∑=∑∑∑即主成分分析是把 p 个原始变量 X 1,X 2,…,X p 的总方差1()pii Var X =∑分解成 p 个互不相关变量 Y 1,Y 2,…,Y p 的方差之和,即1()pii Var Y =∑而 ()k k Var Y λ=。

主成分分析及matlab实现

主成分分析及matlab实现

包含的信息量次之为29.34%,它的主要代表变量为X3(地理 结构)、X6(资源配置)、X9 (可持续性),其权重系数分别为 0.5299、0.5273、0.4589,第三新因子 Z3包含的信息量为 11.97%,代表总量为 X9(可持续性)、 X5(物质还原),权重 系数分别为0.5933、0.5664。这些代表变量反映了各自对该 新因子作用的大小,它们是生态环境系统中最重要的影响因 素。
主成分分析
➢主成分分析的基本原理 ➢主成分分析的计算步骤 ➢主成分分析方法应用实例
问题的提出:
在实际问题研究中,多变量问题是经常 会遇到的。变量太多,无疑会增加分析问题 的难度与复杂性,而且在许多实际问题中, 多个变量之间是具有一定的相关关系的。
因此,人们会很自然地想到,能否在相 关分析的基础上,用较少的新变量代替原来 较多的旧变量,而且使这些较少的新变量尽 可能多地保留原来变量所反映的信息?
F2 0.107995X1 0.258512X 2 0.287536X3 0.400931X 4 0.40431X 5 0.498801X6 0.48868X7 0.167392X8
第三主成分:
在第一主成分的表达式中第一、二、三项指标的系数 较大,这三个指标起主要作用,我们可以把第一王成分看 成是由国内生产总值、固定资产投资和居民消费水平所该 划的反映经济发展状况的综合指标;
i
p
k
k 1
✓累计贡献率
(i 1,2, , p)
i
k
k 1
p
k
k 1
(i 1,2, , p)
一般取累计贡献率达85%~95%的特征值 1, 2 , , m 所对应的第1、第2、…、第m(m≤p)个主成分。
三、 实例演示

MATLAB主成分分析法

MATLAB主成分分析法

MATLAB主成分分析法统计与数学模型分析实验中心《MATLAB数据分析方法》实验报告(4)排名的结果是否合理?为什么?程序:clc,clearA=load('hiyan4_1.t某t');[m,n]=ize(A);%根据指标的属性将原始数据统一趋势化,其中资产负债率为成本型,转换成,效益型。

A1=(A(:,1)-min(A(:,1)))./(ma某(A(:,1))-min(A(:,1)));A2=(A(:,2)-min(A(:,2)))./(ma某(A(:,2))-min(A(:,2)));A3=(ma某(A(:,3))-A(:,3))./(ma某(A(:,3))-min(A(:,3)));A4=(A(:,4)-min(A(:,4)))./(ma某(A(:,4))-min(A(:,4)));A5=(A(:,5)-min(A(:,5)))./(ma某(A(:,5))-min(A(:,5)));A6=(A(:,6)-min(A(:,6)))./(ma某(A(:,6))-min(A(:,6)));A=[A1,A2,A3,A4,A5,A6];%利用相关系数矩阵进行主成分分析R=corrcoef(A);%在指标中无明显的共线关系[v,d]=eig(R);%计算特征值与特征向量%输出结果显示,最大特征值对应的不是正向量,所以不能用第一主成分进行排名%利用协方差矩阵进行主成分分析R1=cov(A);[v1,d1]=eig(R1);%输出结果显示,最大特征值对应的不是正向量,所以不能用第一主成分进行排名%利用R矩阵进行主成分分析fori=1:nforj=1:nR2(i,j)=2某dot(A(:,i),A(:,j))./[um(A(:,i).^2)+um(A(:,j).^2)];endend[v2,d2]= eig(R2);w=um(d2)/um(um(d2));%输出结果显示,最大特征值对应的是正向量,且其贡献率为71.68%,所以能用第一主成分进行排名F=[A-one(m,1)某mean(A)]某d(:,6);%计算主成分第一主成分得分[F1,I1]=ort(F,'decend');%给出各市名次的序号[F2,I2]=ort(I1);%给出各市排名plot(1:m,F,'某');%主成分得分图结果分析:(1)统一趋势化见程序中矩阵A(2)利用协方差和相关系数,最大特征值对应的不是正向量,所以均不能用第一主成分进行排名(3)构造的实对称矩阵,最大特征值对应的是正向量,且其贡献率为71.68%,所以能用第一主成分进行排名,排名结果为:实验结果分析北京天津河北山西内蒙古辽宁吉林黑龙江上海江苏166112717153014135浙江安徽福建江西山东河南湖北湖南广东广西4237191020211292海南重庆四川贵州云南西藏陕西甘肃青海宁夏129182583124262822新疆3(4)排名结果不合理,因为从第一主成分得分图可以看出,指标的属性并没有明显的区别:10.5-0.5-1-1.5-25101520253035建议利用总贡献率达到90%以上后运用加权得分的结果,再进行排名得出结果。

学习matlab程序-简单示例

学习matlab程序-简单示例

Matlab 编程示例.程序结构及函数作用在软件Matlab 中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab 种自带程序实现。

下面主要主要介绍利用Matlab 的矩阵计算功能编程实现主成分分析。

1程序结构主函数子函数2函数作用Cwstd.m ——用总和标准化法标准化矩阵Cwfac.m ——计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷Cwscore.m ——计算各主成分得分、综合得分并排序Cwprint.m ——读入数据文件;调用以上三个函数并输出结果3.源程序3.1 cwstd.m 总和标准化法标准化矩阵%cwstd.m,用总和标准化法标准化矩阵function std=cwstd(vector)cwsum=sum(vector,1); %对列求和[a,b]=size(vector); %矩阵大小,a 为行数,b 为列数for i=1:afor j=1:bCwprint.m Cwstd.m Cwfac.m Cwscore.mstd(i,j)= vector(i,j)/cwsum(j);endend3.2 cwfac.m计算相关系数矩阵%cwfac.mfunction result=cwfac(vector);fprintf('相关系数矩阵:\n')std=CORRCOEF(vector) %计算相关系数矩阵fprintf('特征向量(vec)及特征值(val):\n')[vec,val]=eig(std) %求特征值(val)及特征向量(vec)newval=diag(val) ;[y,i]=sort(newval) ; %对特征根进行排序,y为排序结果,i为索引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.85 break;endend %记下累积贡献率大85%的特征值的序号放入newi中fprintf('主成分数:%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));endend %计算载荷disp(result)3.3 cwscore.m%cwscore.m,计算得分function score=cwscore(vector1,vector2);sco=vector1*vector2;csum=sum(sco,2);[newcsum,i]=sort(-1*csum);[newi,j]=sort(i);fprintf('计算得分:\n')score=[sco,csum,j]%得分矩阵:sco为各主成分得分;csum为综合得分;j为排序结果3.4 cwprint.m%cwprint.mfunction print=cwprint(filename,a,b);%filename为文本文件文件名,a为矩阵行数(样本数),b为矩阵列数(变量指标数)fid=fopen(filename,'r')vector=fscanf(fid,'%g',[a b]);fprintf('标准化结果如下:\n')v1=cwstd(vector)result=cwfac(v1);cwscore(v1,result);4.程序测试例题4.1原始数据中国大陆35个大城市某年的10项社会经济统计指标数据见下表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
l
2 i1
l 1
2 ip
系数lij的确定原则: ① 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, 的所有线性组合中方差最大者。 则新变量指标z1,z2,…,zm分别称为原 变量指标x1,x2,…,xP的第1,第2,…,第 m主成分。
事实上,这种想法是可以实现的,主成分 分析方法就是综合处理这种问题的一种强有力 的工具。 主成分分析是把原来多个变量划为少数几 个综合指标的一种统计分析方法。 从数学角度来看,这是一种降维处理技术。

例如,某人要做一件上衣要测量很多尺寸,如 身长、袖长、胸围、腰围、肩宽、肩厚等十几 项指标,但某服装厂要生产一批新型服装绝不 可能把尺寸的型号分得过多 ?而是从多种指标 中综合成几个少数的综合指标,做为分类的型 号,利用主成分分析将十几项指标综合成3项 指标,一项是反映长度的指标,一项是反映胖 瘦的指标,一项是反映特体的指标。
第一步 将原始数据标准化。 第二步 建立指标之间的相关系数阵R如下
第三步 求R的特征值和特征向量。
从上表看,前3个特征值累计贡献率已达89.564%, 说明前3个主成分基本包含了全部指标具有的信息,我们 取前3个特征值,并计算出相应的特征向量:
因而前三个主成分为:
第一主成分:
第二主成分:
一、主成分分析的基本原理
假定有n个样本,每个样本共有p个变量, 构成一个n×p阶的数据矩阵
x11 x 21 X xn1 x12 x22 xn 2 x1 p x2 p xnp
(1.1)
当p较大时,在p维空间中考察问题比较麻 烦。为了克服这一困难,就需要进行降维处理, 即用较少的几个综合指标代替原来较多的变量 指标,而且使这些较少的综合指标既能尽量多 地反映原来较多变量指标所反映的信息,同时 它们之间又是彼此独立的。
F2 0.107995 X1 0.258512 X 2 0.287536 X 3 0.400931X 4 0.40431X 5 0.498801X 6 0.48868 X 7 0.167392 X 8
第三主成分:
在第一主成分的表达式中第一、二、三项指标的系数 较大,这三个指标起主要作用,我们可以把第一主成分看 成是由国内生产总值、固定资产投资和居民消费水平所该 划的反映经济发展状况的综合指标; 在第二主成分中,第四、五、六、七项指标的影响 大,且第六、七项指标的影响尤其大,可将之看成是反映 物价指数、职工工资和货物周转量的综合指标; 在第三主成分中,第八项指数影响最大,远超过其它 指标的影响,可单独看成是工业总产值的影响。
从以上的分析可以看出,主成分分析的 实质就是确定原来变量xj(j=1,2 ,…, p) 在诸主成分zi(i=1,2,…,m)上的荷载 lij ( i=1,2,…,m; j=1,2 ,…,p)。 从数学上可以证明,它们分别是相关矩 阵m个较大的特征值所对应的特征向量。
二、主成分分析的计算步骤 设有 n 个样品,每个样品观测 p 个指标,将 原始数据写成矩阵
1.将原始数据标准化。这里不妨设上边矩阵已 标准化了。方法 2.建立变量的相关系数阵:
rij
(x
k 1
n
ki
xi )( xkj x j xi )
(x
k 1
n
kj
x j )2
3.求R的特征根 及相应的单位特征向量:
4.写出主成分
计算主成分贡献率及累计贡献率
定义:记x1,x2,…,xP为原变量指标, z1,z2,…,zm(m≤p)为新变量指标 z1 l11 x1 l12 x2 l1 p x p z2 l21 x1 l22 x2 l2 p x p ............ (1.2) z l x l x l x mp p m m1 1 m 2 2
主成分分析
主成分分析的基本原理 主成分分析的计算步骤 主成分分析方法应用实例
问题的提出:
在实际问题研究中,多变量问题是经常 会遇到的。变量太多,无疑会增加分析问题 的难度与复杂性,而且在许多实际问题中, 多个变量之间是具有一定的相关关系的。 因此,人们会很自然地想到,能否在相 关分析的基础上,用较少的新变量代替原来 较多的旧变量,而且使这些较少的新变量尽 可能多地保留原来变量所反映的信息?

贡献率
i

k 1
p
(i 1,2, , p)
k
累计贡献率

k 1 k 1 p
i
k
(i 1,2, , p)
k
一般取累计贡献率达85%~95%的特征值 1 , 2 ,, m 所对应的第1、第2、…、第m(m≤p)个主成分。
三、 实例演示
例 对全国30个省市自治区经济发展基 本情况的八项指标作主成分分析,原始 数据如下:
zscore corrcoef eig

根据酿酒葡萄的理化指标和葡萄酒的质量 对这些酿酒葡萄进行分级。
n
相关文档
最新文档