matlab主成分分析法(8页).doc
《matlab主成分分析法(8页).doc》由会员分享,可在线阅读,更多相关《matlab主成分分析法(8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-matlab主成分分析法-第 64 页1.概述 Matlab语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言的便捷接口的功能。Matlab 语言在各国高校与研究单位起着重大的作用。主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术。 计算相关系数矩阵 (1)在(,rij(i,j=1,2,p)为原变量的xi与xj之间的相关系数,其计算公式为 (2)因为R是实对称矩阵(
2、即rij=rji),所以只需计算上三角元素或下三角元素即可。 计算特征值与特征向量首先解特征方程,通常用雅可比法(Jacobi)求出特征值,并使其按大小顺序排列,即;然后分别求出对应于特征值的特征向量。这里要求=1,即,其中表示向量的第j个分量。 计算主成分贡献率及累计贡献率主成分的贡献率为累计贡献率为一般取累计贡献率达8595%的特征值所对应的第一、第二,第m(mp)个主成分。 计算主成分载荷其计算公式为 (3)得到各主成分的载荷以后,还可以按照(,得到各主成分的得分 (4)在软件Matlab中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab种自带程序实现。下
3、面主要主要介绍利用Matlab的矩阵计算功能编程实现主成分分析。 主函数 子函数用总和标准化法标准化矩阵计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷计算各主成分得分、综合得分并排序读入数据文件;调用以上三个函数并输出结果总和标准化法标准化矩阵%cwstd.m,用总和标准化法标准化矩阵function std=cwstd(vector)cwsum=sum(vector,1); %对列求和a,b=size(vector); %矩阵大小,a为行数,b为列数for i=1:a for j=1:b std
4、(i,j)= vector(i,j)/cwsum(j); endend计算相关系数矩阵function 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-
5、z);endfprintf(%gn,newy)rate=y/sum(y);fprintf(n贡献率:n)newrate=newy/sum(newy)sumrate=0;newi=;for k=length(y):-1:1 sumrate=sumrate+rate(k); newi(length(y)+1-k)=i(k); if sumrate0.85 break; end end %记下累积贡献率大85%的特征值的序号放入newi中fprintf(主成分数:%gnn,length(newi);fprintf(主成分载荷:n)for p=1:length(newi) for q=1:length
6、(y) result(q,p)=sqrt(newval(newi(p)*vec(q,newi(p); endend %计算载荷disp(result)%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为排序结果function print=cwprint(filenam
7、e,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);中国大陆35个大城市某年的10项社会经济统计指标数据见下表。城 市名 称年底总人口(万人) 非农业人口比(%) 农 业总产值(万元)工业总产值(万元)客运总量(万人)货运总量(万吨)地方财政预算内收入(万元)城乡居民年底储蓄余额(万元)在岗职工人数(万人)在岗职工
8、工资总额(万元)北 京1 81 843 42719 999 70620 32345 5622 790 86326 806 6465 773 301天 津 91 501 13622 645 5023 25926 3171 128 07311 301 9312 254 343石 家 庄 22 918 6806 885 7682 9291 911352 3487 095 875758 877太 原 3236 0382 737 7501 93711 895203 2773 943 100654 023呼和浩特 2365 343816 4522 3512 623105 7831 396 588309 3
9、37沈 阳 91 295 4185 826 7337 78215 412567 9199 016 9981 152 811大 连 61 879 7398 426 38510 78019 187709 2277 556 796965 922长 春 81 853 2105 966 3434 8109 532357 0964 803 744884 447哈 尔 滨 72 663 8554 186 1236 7207 520481 4436 450 0201 309 151上 海1 42 069 01954 529 0986 40644 4854 318 50025 971 2005 605 445南
10、 京 1989 19913 072 73714 26911 193664 2995 680 4721 357 861杭 州 61 414 73712 000 79617 88311 684449 5937 425 9671 180 947宁 波 71 428 23510 622 86622 21510 298501 7235 246 350824 034合 肥 4628 7642 514 1254 8931 517233 6281 622 931369 577福 州 32 152 2886 555 3518 8517 190467 5245 030 220680 607厦 门 5333 374
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 成分 分析
限制150内