利用matlab编程实现主成分分析,利用Matlab编程进行主成分分析

《利用Matlab编程进行主成分分析》由会员分享,可在线阅读,更多相关《利用Matlab编程进行主成分分析(24页珍藏版)》请在人人文库网上搜索。

1、用Matlab编程实现主成分分析1.概述Matlab语言是当今国际科学界,尤其是自动控制领域中最具影响力和最动态的软件。从矩阵运算开始,发展成高度集成的计算机语言。它还提供强大的科学计算、灵活的编程过程、高质量图形可视化和界面设计,以及与其他程序和语言的便捷接口等功能。Matlab语言在各国大学和研究单位中起着重要作用。主成分分析是一种统计分析方法,它最初将多个变量分类为少数综合指标,是从数学角度进行降维处理的方法。1.1主成分分析和计算步骤相关系数矩阵计算(1)(3.5.3)样式中的rij(i,j=1,2,p)是原始变量的Xi和XJ之间的相关系数,计算方法如下(2)因为r是实际的对称矩阵(即。

2、rij=rji),所以只需要计算顶部或底部三角形元素。特征值和特征向量的计算先解特征方程。通常,使用Jacobi(Jacobi)方法获取唯一值并按大小排序。然后查找与特征值相对应的特征向量。其中要求=1。其中表示矢量的j分量。主成分贡献率和累积贡献率的计算主要成分的贡献率累积贡献率为累计贡献合计为85-95%的唯一值,对应于1、2、m(mp)个主成分。主成分负荷计算计算公式为(3)按各主要成分负载后,还可以通过(3.5.2)式进一步计算,按主要成分得分(4)2.程序结构和功能角色在软件Matlab中实现主成分分析的方法有两种。一个是通过编程实现的。二是直接调用Matlab自身的程序实现。以下是。

3、使用Matlab的矩阵计算功能编程进行主成分分析的主要说明。2.1计划结构Cwprint.m主函数子函数Cwfac.mCwscore.mCwstd.m2.2函数角色Cwstd.m以标准化总计的方式标准化矩阵Cwfac.m计算相关系数矩阵。特征值和特征向量计算;排序主要成分。计算每个特征值贡献率;主成分选择(累计贡献率大于85%),主成分数量计算;主成分载荷计算Cwscore.m计算每个关键组件的得分、综合得分和排序读取Cwprint.m数据文件;调用上述三个函数并输出结果3.源程序3.1 cwstd.m%cwstd.m,以总计标准化方式标准化矩阵Function std=cwstd(vecto。

4、r)Cwsum=sum(vector,1);%与列合计a,b=size(vector);%矩阵大小,a为行,b为列数For i=1:aFor j=1:bStd(i,j)=vector(i,j)/CW sum(j);EndEnd3.2 cwfac.m%cwfac.mfunction result=CW fac(vector);Fprintf(相关系数矩阵:n)Std=CORRCOEF(vector)%计算相关系数矩阵Fprintf (vec)和唯一值(val): nvec,val=eig(std)%特征值(val)和特征向量(vec)new val=diag(val);y,I=sort(new 。

5、val);%对要素根排序,y是排序结果,I是索引Fprintf(对齐特征根:n)For z=1:length(y)Newy(z)=y(长度(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:1sum rate=sum rate(k);Newi(长度(y)1-k)=I(k);If sumrate0.85 breakEndEnd%将累积贡献率为85%的唯一值的序列号写入newiFprintf(主组件数:%gnn,leng。

6、th(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(结果)3.3 cwscore.m%cwscore.m,计算分数Functionscore=cwscore (vector 1,vector 2);Sco=vector1 * vector2Csum=sum(sco,2);newcsum,I=sort(-1 * csum);newi,j=sort(I);Fprintf(计分:n)Score。

7、=sco,csum,j%得分矩阵:SCO是每个主成分得分。Csum是综合分数。j是排序结果3.4 cwprint.m%cwprint.mFunction print=CW print (filename,a,b);%filename是文本文件名,a是矩阵行(样本数),b是矩阵列数(变量指示符数)Fid=fopen(filename,r)Vector=fscanf(fid,%g,a b);Fprintf(标准化结果如下:n)V1=cwstd(vector)result=CW fac(v1);Cwscore(v1,result);4.程序测试4.1原始数据中国大陆35个大城市一年内10个社会经济统。

8、计指标如下表所示。城堡名称年末总人口(一万人)非农业人口比例(%)农业总产值(1万韩元)工业总产值(1万韩元)客运总量(一万人)货物总量(万吨)地方财政预算内收入(万元)城乡居民年末储蓄余额(1万韩元)工作中的员工数(万人)在职工人的总工资(1万韩元)北京1 249.900.597 81 843 42719 999 70620 32345 5622 790 86326 806 646410.805 773 301天津910.170.580 91 501 13622 645 5023 25926 3171 128 07311 301 931202.682 254 343石家庄875.400.23。

9、3 22 918 6806 885 7682 9291 911352 3487 095 87595.60758 877太原市299.920.656 3236 0382 737 7501 93711 895203 2773 943 10088.65654 023呼和浩特市207.780.441 2365 343816 4522 3512 623105 7831 396 58842.11309 337沈阳市677.080.6291 295 4185 826 7337 78215 412567 9199 016 998135.451 152 811大衍545.310.494 61 879 7398 。

10、426 38510 78019 187709 2277 556 79694.15965 922长春691.230.406 81 853 2105 966 3434 8109 532357 0964 803 744102.63884 447哈尔滨927.090.462 72 663 8554 186 1236 7207 520481 4436 450 020172.791 309 151进入大海1 313.120.738 42 069 01954 529 0986 40644 4854 318 50025 971 200336.845 605 445南京537.440.534 1989 1991。

11、3 072 73714 26911 193664 2995 680 472113.811 357 861杭州616.050.355 61 414 73712 000 79617 88311 684449 5937 425 96796.901 180 947尼波538.410.254 71 428 23510 622 86622 21510 298501 7235 246 35062.15824 034把肥料加在一起429.950.318 4628 7642 514 1254 8931 517233 6281 622 93147.27369 577皮条客583.130.2732 152 2886。

12、 555 3518 8517 190467 5245 030 22069.59680 607厦门128.990.486 5333 3745 751 1243 7282 570418 7582 108 33146.93657 484南昌424.200.398688 2892 305 8813 6743 189167 7142 640 46062.08479、555济南557.630.408 51 486 3026 285 8825 91511 775460 6904 126 97083.31756 696青岛702.970.369 32 382 32011 492 03613 40817 038。

13、658 4354 978 045103.52961 704郑州615.360.342 4677 4255 287 60110 4336 768387 2525 135 33884.66696 848无限740.200.586 91 211 2917 506 0859 79315 442604 6585 748 055149.201 314 766张夏582.470.310 71 146 3673 098 1798 7065 718323 6603 461 24469.57596 986光州市685.000.621 41 600 73823 348 13922 00723 8541 761 49。

14、920 401 811182.813 047 594沈进119.850.793 1299 66220 368 2958 7544 2741 847 9089 519 90091.261 890 338南宁285.870.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 0612 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 7664。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值