1、主成分分析法MATLAB实现.MATLAB结课作业.指导老师:张肃班级:信管 121姓名:桂亚东学号:201200654118利用 Matlab 编程实现主成分分析概述Matlab 语言是当今国际上科学界 (尤其是自动控制领域 ) 最具影响力、也是最有活力的软件。 它起源于矩阵运算, 并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、 灵活的程序设计流程、 高质量的图形可视化与界面设计、与其他程序和语言的便捷接口的功能。 Matlab 语言在各国高校与研究单位起着重大的作用。 主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术。1
2、.1 主成分分析计算步骤. 计算相关系数矩阵r11r12r1pRr21r22r2pr rp1 p2rpp(1)在( 3.5.3)式中, rij(i,j=1 ,2, ,p) 为原变量的 xi 与 xj 之间的相关系数,其计算公式为n(xkixi)(xkjxj)rijnk 1n(xkixi)2(x xkjj)2k 1 k 1 (2)因为 R 是实对称矩阵(即 rij=r ji),所以只需计算上三角元素或下三角元素即可。 计算特征值与特征向量首 先 解特 征方 程 I R 0 , 通常 用 雅可 比法 ( Jacobi )求 出特 征 值(i 1, 2, , p)i ,并使其按大小顺序排列,即 1
3、2 , p 0;然后分别求出对应于特征值p2i 的特征向量 ei (i 1, 2, , p) 。这里要求 ei =1 ,即 e 1,ijj 1其中e 表示向量 ei 的第 j 个分量。ij 计算主成分贡献率及累计贡献率主成分z 的贡献率为i.i(i 1,2, , p) pkk 1累计贡献率为ikk1 i p( 1,2 , , ) pkk 1一般取累计贡献率达 85 95% 的特征值, 2 , , 1 所对应的第一、第m二, ,第 m (m p) 个主成分。 计算主成分载荷其计算公式为l p( z , x ) e (i, j 1,2, , p)ij (3)i j i ij得到各主成分的载荷以后,
4、还可以按照( 3.5.2 )式进一步计算,得到各主成分的得分z11z12z1mZz21z22z2mzn1zn2znm(4)2.函数作用.Cwstd.m 用总和标准化法标准化矩阵Cwfac.m 计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于 85% ),输出主成分个数;计算主成分载荷Cwscore.m 计算各主成分得分、综合得分并排序Cwprint.m 读入数据文件;调用以上三个函数并输出结果1.2源程序3.1 cwstd.m 总和标准化法标准化矩阵%cwstd.m, 用总和标准化法标准化矩阵function std=cwstd(vect
5、or)cwsum=sum(vector,1); %对列求和a,b=size(vector); %矩阵大小 ,a 为行数 ,b 为列数for i=1:afor j=1:bstd(i,j)= vector(i,j)/cwsum(j);end.end3.2 cwfac.m 计算相关系数矩阵%cwfac.mfunction result=cwfac(vector);fprintf( 相关系数矩阵 :n)std=CORRCOEF(vector) %计算相关系数矩阵fprintf( 特征向量 (vec) 及特征值 (val) :n)vec,val=eig(std) %求特征值 (val) 及特征向量 (v
6、ec)newval=diag(val) ;y,i=sort(newval) ; %对特征根进行排序, y 为排序结果, i 为索引fprintf( 特征根排序: n)for z=1:length(y)newy(z)=y(length(y)+1-z);endfprintf(%gn,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 sumrate0.85 b
7、reak;endend %记下累积贡献率大 85% 的特征值的序号放入 newi 中fprintf( 主成分数: %gnn,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(sc
8、o,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=cw
9、std(vector)result=cwfac(v1);cwscore(v1,result);3.2程序测试4.1 原始数据中国大陆 35 个大城市某年的 10 项社会经济统计指标数据见下表。.城 市名 称年底总人口(万人)非农业人口比(%)农 业总产值(万元)工业总产值(万元)客运 货运 地方财政总量(万人)总量(万吨)预算内收入(万元)城乡居民年底储蓄余额(万元)在岗职工人数(万人)在岗职工工资总额(万元)北 京 1 249.901.381 843 42719 99970620323455622 790 86326 8066463.3 5 773 301天 津 910.174.291 50
10、1 13622 6455023 259263171 128 07311 301931202.68 2 254 343石 家 庄 875.400.23322 918 680 6 885 768 2 929 1 911 352 348 7 095 875 95.60 758 877太 原 299.920.6563236 038 2 737 750 1 93711895203 277 3 943 100 88.65 654 023呼和浩特 207.780.4412365 343 816 452 2 351 2 623 105 783 1 396 588 42.11 309 337沈 阳 677.08
11、0.62991 295 418 5 826 733 7 78215412567 919 9 016 998 135.45 1 152 811大 连 545.310.49461 879 739 8 426 3851078019187709 227 7 556 796 94.15 965 922长 春 691.230.40681 853 210 5 966 343 4 810 9 532 357 096 4 803 744 102.63 884 447哈 尔 滨 927.090.46272 663 855 4 186 123 6 720 7 520 481 443 6 450 020 172.79
12、 1 309 151上 海 1 313.120.73842 069 01954 5290986 406444854 318 50025 971200336.84 5 605 445南 京 537.440.5341989 19913 0727371426911193664 299 5 680 472 113.81 1 357 861杭 州 616.050.35561 414 73712 0007961788311684449 593 7 425 967 96.90 1 180 947宁 波 538.410.25471 428 23510 6228662221510298501 723 5 246
13、 350 62.15 824 034合 肥 429.950.3184628 764 2 514 125 4 893 1 517 233 628 1 622 931 47.27 369 577福 州 583.130.27332 152 288 6 555 351 8 851 7 190 467 524 5 030 220 69.59 680 607厦 门 128.990.4865333 374 5 751 124 3 728 2 570 418 758 2 108 331 46.93 657 484南 昌 424.200.3988688 289 2 305 881 3 674 3 189 167
14、 714 2 640 460 62.08 479 ,555济 南 557.63 0.408 1 486 302 6 285 882 5 915 11 460 690 4 126 970 83.31 756 696.5 775青 岛 702.971.432 382 32011 4920361340817038658 435 4 978 045 103.52 961 704郑 州 615.363.44677 425 5 287 601104336 768 387 252 5 135 338 84.66 696 848武 汉 740.204.391 211 291 7 506 085 9 79315
15、442604 658 5 748 055 149.20 1 314 766长 沙 582.47202.6971 146 367 3 098 179 8 706 5 718 323 660 3 461 244 69.57 596 986广 州 685.000.23441 600 73823 34813922007238541 761 49920 4018110.657 3 047 594深 圳 119.850.4421299 66220 3682958 754 4 274 1 847 908 9 519 900 91.26 1 890 338南 宁 285.870.6304720 486 1 1
16、49 691 5 130 3 293 149 700 2 190 918 45.09 371 809海 口 54.380.495444 815 717 461 5 345 2 356 115 174 1 626 800 19.01 198 138重 庆 3 072.340.40774 168 780 8 585 5255244125124898,912 9 090 969 223.73 1 606 804成 都 1 003.56 0.335 1 935 590 5 894 2894014019632561 189 7 479 684 132.89 1 200 671贵 阳 321.500.46
17、37362 061 2 247 934157034 143 197 908 1 787 748 55.28 419 681昆 明 473.390.7395793 356 3 605 729 5 60412042524 216 4 127 900 88.11 842 321西 安 674.50336.854739 905 3 665 942103119 766 408 896 5 863 980 114.01 885 169兰 州 287.590.5355259 444 2 940 884 1 832 4 749 169 540 2 641 568 65.83 550 890西 宁 133.95
18、0.356765 848 711 310 1 746 1 469 49 134 855 051 27.21 219 251银 川 95.380.2559171 603 661 226 2 106 1 193 74 758 814 103 23.72 178 621乌鲁木齐 158.920.319478 513 1 847 241 2 668 9 041 254 870 2 365 508 55.27 517 622.1.5 运行结果 cwprint(cwbook.txt,35,10)fid =6数据标准化结果如下:v1 =3.5 0.0356 0.0435 0.0680 0.0557 0.11
19、12 0.1194 0.1184 0.10834.4202.70 0.0346 0.0354 0.0770 0.0089 0.0642 0.0483 0.0499 0.05340.2350.658 0.0139 0.0688 0.0234 0.0080 0.0047 0.0151 0.0314 0.02520.4430.631 0.0391 0.0056 0.0093 0.0053 0.0290 0.0087 0.0174 0.02340.4960.408 0.0263 0.0086 0.0028 0.0064 0.0064 0.0045 0.0062 0.01110.464.1.6 0.03
20、75 0.0305 0.0198 0.0213 0.0376 0.0243 0.0398 0.03573.64.5 0.0295 0.0443 0.0286 0.0295 0.0468 0.0304 0.0334 0.0248202.710.236 0.0242 0.0437 0.0203 0.0132 0.0233 0.0153 0.0212 0.02700.6590.444 0.0276 0.0628 0.0142 0.0184 0.0184 0.0206 0.0285 0.04550.6320.497 0.0440 0.0488 0.1853 0.0176 0.1086 0.1848 0
21、.1148 0.08880.4090.465 0.0318 0.0233 0.0444 0.0391 0.0273 0.0284 0.0251 0.03000.740336.86 0.0212 0.0334 0.0408 0.0490 0.0285 0.0192 0.0328 0.02550.5360.357 0.0152 0.0337 0.0361 0.0609 0.0251 0.0215 0.0232 0.01640.2560.257 0.0190 0.0148 0.0085 0.0134 0.0037 0.0100 0.0072 0.01250.3200.274 0.0163 0.050
22、8 0.0223 0.0243 0.0175 0.0200 0.0222 0.01830.4870.399 0.0290 0.0079 0.0195 0.0102 0.0063 0.0179 0.0093 0.01240.159.1.7 0.0237 0.0162 0.0078 0.0101 0.0078 0.0072 0.0117 0.01643.74.6 0.0243 0.0350 0.0214 0.0162 0.0287 0.0197 0.0182 0.0220202.720.237 0.0220 0.0562 0.0391 0.0367 0.0416 0.0282 0.0220 0.0
23、2730.6600.445 0.0204 0.0160 0.0180 0.0286 0.0165 0.0166 0.0227 0.02230.6330.498 0.0349 0.0286 0.0255 0.0268 0.0377 0.0259 0.0254 0.03930.4100.466 0.0185 0.0270 0.0105 0.0239 0.0140 0.0139 0.0153 0.01830.741336.87 0.0370 0.0377 0.0793 0.0603 0.0582 0.0754 0.0901 0.04820.5370.358 0.0472 0.0071 0.0692
24、0.0240 0.0104 0.0791 0.0421 0.02400.2580.321 0.0242 0.0170 0.0039 0.0141 0.0080 0.0064 0.0097 0.01190.2750.488 0.0497 0.0011 0.0024 0.0146 0.0057 0.0049 0.0072 0.00500.4000.160 0.0123 0.0983 0.0292 0.1437 0.0613 0.0385 0.0402 0.05900.387.1.8 0.0199 0.0456 0.0200 0.1100 0.0479 0.0240 0.0331 0.03503.8
25、4.7 0.0271 0.0085 0.0076 0.0430 0.0101 0.0085 0.0079 0.0146202.730.238 0.0230 0.0187 0.0123 0.0154 0.0294 0.0224 0.0182 0.02320.6610.446 0.0244 0.0174 0.0125 0.0283 0.0238 0.0175 0.0259 0.03000.6340.499 0.0324 0.0061 0.0100 0.0050 0.0116 0.0073 0.0117 0.01730.4110.467 0.0311 0.0016 0.0024 0.0048 0.0
26、036 0.0021 0.0038 0.00720.742336.88 0.0340 0.0040 0.0022 0.0058 0.0029 0.0032 0.0036 0.00630.5380.359 0.0491 0.0019 0.0063 0.0073 0.0221 0.0109 0.0105 0.01460.259相关系数矩阵 :std =0.322 -0.3444 0.8425 0.3603 0.7390 0.6215 0.4039 0.4967 0.6761.1.9-0.3444 1.0000 -0.4750 0.3096 -0.3539 0.1971 0.3571 0.2600 0.15703.94.8 -0.4750 1.0000 0.3358 0.5891 0.5056 0.32
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1