下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、巧用Matlab实现主成分分析1. 概述Matlab语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力 的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的 科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言的 便捷接口的功能。Matlab语言在各国高校与研究单位起着重大的作用。主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维 处理技术。1.1主成分分析计算步骤PCA 计算相关系数矩阵在(3.5.3)式中,rj乙1r21r12r22rp2rPP(1)(i, j=1 ,2,,p)为
2、原变量的xi与xj之间的相关系数,其计算公式为n7 (Xk Xi)(Xkj Xj)rijk Ann(Xki -Xi)z (Xkj -Xj)2(2)k =1k A因为R是实对称矩阵(即rij=rji),所以只需计算上三角元素或下三角元素即可。 计算特征值与特征向量首先解特征方程 因-R =0,通常用雅可比法(Jacobi)求出特征值叫(i二1,2,,p),并使其按大小顺序排列,即1 一 2 -,- p - 0 ;然后分别求出对应于特征值 i的特征向p量edi =1,2,,p)。这里要求ej =1,即7 $ =1,其中eij表示向量e的第j个分量j 4 计算主成分贡献率及累计贡献率主成分乙的贡献率
3、为累计贡献率为般取累计贡献率达8595%的特征值1,'2,,m所对应的第一、第二,第m(m< p)个主成分。 计算主成分载荷其计算公式为(3)1 ij = P(zi ,Xj ) = .,i ej (i, j = 1,2, p)得到各主成分的载荷以后,还可以按照(3.5.2)式进一步计算,得到各主成分的得分Z11Z21z12Z22Z1 m IZ2m_Zn1Zn2Znm(4)2. 程序结构及函数作用在软件Matlab中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab种自带程序实现。下面主要主要介绍利用Matlab的矩阵计算功能编程实现主成分分析。2.1
4、程序结构Cwprin t.m主函数子函数*Cwstd.mCwscore.mCwfac.m2.2 函数作用Cwstd.m用总和标准化法标准化矩阵Cwfac.m计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷Cwscore.m计算各主成分得分、综合得分并排序Cwpri nt.m读入数据文件;调用以上三个函数并输出结果读者注意,在做主成分分析时一定要看清原理, 两个重点,一个是选取 85% ,一个是 matalab 严格区分大小写。这是编者读完网上代码后改写的正确代码。3. 源程序3.1 cwstd.m%
5、cwstd.m, 用总和标准化法标准化矩阵function std=cwstd(vector)cwsum=sum(vector,1); % 对列求和a,b=size(vector);%矩阵大小 ,a 为行数 ,b 为列数for i=1:afor j=1:bstd(i,j)= vector(i,j)/cwsum(j);endend3.2 cwfac.m%cwfac.mfunction result=cwfac(vector);fprintf(' 相关系数矩阵 :n')std=corrcoef(vector)%计算相关系数矩阵 /fprintf('特征向量(vec)及特征值
6、(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('%gn',newy)rate=y/sum(y);fprintf('n 贡献率: n')newrate=newy/sum(newy)sumrate=0;newi=;for k=len
7、gth(y):-1:1sumrate=sumrate+rate(k);newi(length(y)+1-k)=i(k);if sumrate>0.85 break;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.
8、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为矩阵
9、行数(样本数),b为矩阵列数(变量指标数)fid=fopen(filename,'r')vector=fscanf(fid,'%g',a b);fprintf(' 标准化结果如下: n')v仁cwstd(vector) result=cwfac(v1); cwscore(v1,result);4.程序测试4.1原始数据中国大陆35个大城市某年的10项社会经济统计指标数据见下表。年底非农农业工业客运货运地方财政城乡居民在岗职城市名称总人口(万人)业人口比(%)总产值(万元)总产值(万元)总量(万人)总量(万吨)预算内收 入(万元)年底储蓄 余额(万
10、元)工人数(万人)北京1 249.900.597 81 843 42719 999 70620 32345 5622 790 86326 806 646410.80天津910.170.580 91 501 13622 645 5023 25926 3171 128 07311 301 931202.68石家庄875.400.233 22 918 6806 885 7682 9291 911352 3487 095 87595.60太原299.920.656 3236 0382 737 7501 93711 895203 2773 943 10088.65呼和浩特207.780.441 2365
11、 343816 4522 3512 623105 7831 396 58842.11沈阳677.080.629 91 295 4185 826 7337 78215 412567 9199 016 998135.45大连545.310.494 61 879 7398 426 38510 78019 187709 2277 556 79694.15长春691.230.406 81 853 2105 966 3434 8109 532357 0964 803 744102.63哈尔滨927.090.462 72 663 8554 186 1236 7207 520481 4436 450 0201
12、72.79上海1 313.120.738 42 069 01954 529 0986 40644 4854 318 50025 971 200336.84南京537.440.534 1989 19913 072 73714 26911 193664 2995 680 472113.81杭州616.050.355 61 414 73712 000 79617 88311 684449 5937 425 96796.90宁波538.410.254 71 428 23510 622 86622 21510 298501 7235 246 35062.15合肥429.950.318 4628 7642
13、 514 1254 8931 517233 6281 622 93147.27福州583.130.273 32 152 2886 555 3518 8517 190467 5245 030 22069.59厦门128.990.486 5333 3745 751 1243 7282 570418 7582 108 33146.93南昌424.200.398 8688 2892 305 8813 6743 189167 7142 640 46062.08济南557.630.408 51 486 3026 285 8825 91511 775460 6904 126 97083.31青岛702.97
14、0.369 32 382 32011 492 03613 40817 038658 4354 978 045103.52郑州615.360.342 4677 4255 287 60110 4336 768387 2525 135 33884.66武汉740.200.586 91 211 2917 506 0859 79315 442604 6585 748 055149.20长沙582.470.310 71 146 3673098 1798 7065 718323 6603 461 24469.57广州685.000.621 41 600 73823 348 13922 00723 8541
15、761 49920 401 811182.81深圳119.850.793 1299 66220 368 2958 7544 2741 847 9089 519 90091.26在岗职工 工资总额(万元)5 773 3012 254 343758 877654 023309 3371 152 811965 922884 4471 309 1515 605 4451 357 8611 180 947824 034369 577680 607657 484479 ,555756 696961 704696 8481 314 766596 9863 047 5941 890 338南宁285.870.
16、406 4720 4861 149 6915 1303 293149 7002 190 91845.09371 809海口54.380.835 444 815717 4615 3452 356115 1741 626 80019.01198 138重庆3 072.340.206 74 168 7808 585 52552 44125 124898,9129 090 969223.731 606 804成都1 003.560.3351 935 5905 894 28940 14019 632561 1897 479 684132.891 200 671贵阳321.500.455 7362 061
17、2 247 93415 7034 143197 9081 787 74855.28419 681昆明473.390.386 5793 3563 605 7295 60412 042524 2164 127 90088.11842 321西安674.500.409 4739 9053 665 94210 3119 766408 8965 863 980114.01885 169兰州287.590.544 5259 4442 940 8841 8324 749169 5402 641 56865.83550 890西宁133.950.522 765 848711 3101 7461 46949 1
18、34855 05127.21219 251银川95.380.570 9171 603661 2262 1061 19374 758814 10323.72178 621乌鲁木齐158.920.824 478 5131 847 2412 6689 041254 8702 365 50855.27517 6224.2运行结果>> cwpri nt('cwbook.txt',35,10) fid =6数据标准化结果如下:v1 =0.05810.03560.04350.06800.05570.11120.11940.11840.10830.13920.04230.03460
19、.03540.07700.00890.06420.04830.04990.05340.05440.04070.01390.06880.02340.00800.00470.01510.03140.02520.01830.01390.03910.00560.00930.00530.02900.00870.01740.02340.01580.00970.02630.00860.00280.00640.00640.00450.00620.01110.00750.03150.03750.03050.01980.02130.03760.02430.03980.03570.02780.02530.02950
20、.04430.02860.02950.04680.03040.03340.02480.02330.03210.02420.04370.02030.01320.02330.01530.02120.02700.02130.04310.02760.06280.01420.01840.01840.02060.02850.04550.03160.06100.04400.04880.18530.01760.10860.18480.11480.08880.13520.02500.03180.02330.04440.03910.02730.02840.02510.03000.03270.02860.02120
21、.03340.04080.04900.02850.01920.03280.02550.02850.02500.01520.03370.03610.06090.02510.02150.02320.01640.01990.02000.01900.01480.00850.01340.00370.01000.00720.01250.00890.02710.01630.05080.02230.02430.01750.02000.02220.01830.01640.00600.02900.00790.01950.01020.00630.01790.00930.01240.01590.01970.02370
22、.01620.00780.01010.00780.00720.01170.01640.01160.02590.02430.03500.02140.01620.02870.01970.01820.02200.01820.03270.02200.05620.03910.03670.04160.02820.02200.02730.02320.02860.02040.01600.01800.02860.01650.01660.02270.02230.01680.03440.03490.02860.02550.02680.03770.02590.02540.03930.03170.02710.01850
23、.02700.01050.02390.01400.01390.01530.01830.01440.03180.03700.03770.07930.06030.05820.07540.09010.04820.07350.00560.04720.00710.06920.02400.01040.07910.04210.02400.04560.01330.02420.01700.00390.01410.00800.00640.00970.01190.00900.00250.04970.00110.00240.01460.00570.00490.00720.00500.00480.14280.01230
24、.09830.02920.14370.06130.03850.04020.05900.03870.04660.01990.04560.02000.11000.04790.02400.03310.03500.02900.01490.02710.00850.00760.04300.01010.00850.00790.01460.01010.02200.02300.01870.01230.01540.02940.02240.01820.02320.02030.03130.02440.01740.01250.02830.02380.01750.02590.03000.02130.01340.03240
25、.00610.01000.00500.01160.00730.01170.01730.01330.00620.03110.00160.00240.00480.00360.00210.00380.00720.00530.00440.03400.00400.00220.00580.00290.00320.00360.00630.00430.00740.04910.00190.00630.00730.02210.01090.01050.01460.0125相关系数矩阵 :std =1.0000-0.34440.84250.36030.73900.62150.40390.49670.67610.468
26、9-0.34441.0000-0.47500.3096-0.35390.19710.35710.26000.15700.30900.8425-0.47501.00000.33580.58910.50560.32360.44560.55750.37420.36030.30960.33581.00000.15070.76640.94120.84800.73200.86140.7390-0.35390.58910.15071.00000.42940.19710.31820.38930.25950.62150.19710.50560.76640.42941.00000.83160.89660.9302
27、0.90270.40390.35710.32360.94120.19710.83161.00000.92330.83760.95270.49670.26000.44560.84800.31820.89660.92331.00000.92010.97310.67610.15700.55750.73200.38930.93020.83760.92011.00000.93960.46890.30900.37420.86140.25950.90270.95270.97310.93961.0000特征向量 (vec):vec =-0.13670.2282-0.26280.19390.6371 -0.21
28、630.3176-0.1312-0.41910.2758-0.0329-0.02170.00090.0446-0.1447 -0.44370.4058-0.55620.54870.0593-0.0522-0.02800.2040-0.0492-0.5472 -0.4225 0.3440 0.3188 -0.44380.24010.0067-0.4176-0.2856-0.23890.1926-0.4915 -0.4189 0.2726 0.2065 0.3403 0.04040.14080.08960.0380-0.1969-0.0437-0.4888-0.6789-0.44050.1861-
29、0.03430.23600.0640-0.82940.03770.26620.1356-0.12900.02780.37820.29810.47390.56850.23580.1465-0.1502-0.26310.12450.21520.36440.15670.3464-0.64850.2489-0.40430.2058-0.07040.04620.12140.38120.4879-0.57070.12170.17610.09870.35500.3280-0.01390.00710.3832-0.7894-0.16280.19250.2510-0.04220.26940.03960.0456
30、0.16680.3799特征值(val)val =0.003900000000000.024000000000000.030700000000000.099100000000000.123200000000000.256600000000000.320700000000000.530000000000002.351400 0 0 0 0 0 0 0 0 6.2602 特征根排序:6.260222.351380.5300470.3206990.2566390.1232410.09909150.03070880.02403550.00393387各主成分贡献率:newrate =0.6260 0.2351 0.0530 0.0321 0.0257 0.0123 0.0099 0.0031 0.0024 0.0004第一、二主成分的载荷:0.690 1-0.64270.148 30.84140.600 7-0.68050.85
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国疫苗研发进展与市场潜力评估专题报告
- 2026中国冷链物流产业发展趋势及投资风险评估报告
- 2026休闲食品行业新品研发方向与营销策略诊断报告
- 2026中国电子纸显示技术在教育智能硬件领域替代液晶屏可行性报告
- 2026医疗人工智能应用市场调研及发展路径与融资前景分析报告
- 2026车联网服务平台市场发展现状及用户需求与商业模式创新报告
- 2026共享办公空间运营效率提升与盈利模式创新研究报告
- 2026中国区块链技术产业发展现状及商业化前景分析报告
- 2026散装煤炭市场现状与未来发展趋势分析报告
- 肝硬化合并肝性脑病护理查房
- 彩钢板房施工方案范文
- (高清版)DB22∕T 1560-2012 农作物种植成本保险查勘定损技术规范总则
- 2025年营养师食品安全及营养健康职业技能及理论资格知识考试题库(附含答案)
- 《第2课 立在地球边上放号》课件 统编版高中语文必修上册
- 输变电工程质量通病防治手册
- 讲述红色故事
- 智能制造概论(高职)全套教学课件
- 潍柴雷沃线上测评题
- 郑州财税金融职业学院招聘真题
- 急性胃炎临床路径(2017年县医院适用版)
- 水生生物学绪论HJJ
评论
0/150
提交评论