1、其计算公式为 (3)得到各主成分的载荷以后,还可以按照(3.5.2)式进一步计算,得到各主成分的得分 (4)2.函数作用用总和标准化法标准化矩阵计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算各主成分得分、综合得分并排序读入数据文件;调用以上三个函数并输出结果3.源程序 总和标准化法标准化矩阵%,用总和标准化法标准化矩阵function std=cwstd(vector)cwsum=sum(vector,1); %对列求和a,b=size(vector); %矩阵大小,a为行数,b为列数for i=1:a f
2、or j=1:b std(i,j)= vector(i,j)/cwsum(j); endend%function result=cwfac(vector);fprintf(相关系数矩阵:n)std=CORRCOEF(vector) %计算相关系数矩阵特征向量(vec)及特征值(val):vec,val=eig(std) %求特征值(val)及特征向量(vec)newval=diag(val) ;y,i=sort(newval) ; %对特征根进行排序,y为排序结果,i为索引特征根排序:for z=1:length(y) newy(z)=y(length(y)+1-z);%gn,newy)rat
3、e=y/sum(y);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 sumrate break; end end %记下累积贡献率大85%的特征值的序号放入newi中主成分数:%gnn,length(newi);主成分载荷:for p=1:length(newi) for q=1: result(q,p)=sqrt(newval(newi(p)*vec(q,newi(p);end %计算载荷disp(res
4、ult)%,计算得分function score=cwscore(vector1,vector2);sco=vector1*vector2;csum=sum(sco,2);newcsum,i=sort(-1*csum);newi,j=sort(i);计算得分:score=sco,csum,j %得分矩阵:sco为各主成分得分;csum为综合得分;j为排序结果function print=cwprint(filename,a,b);%filename为文本文件文件名,a为矩阵行数(样本数),b为矩阵列数(变量指标数)fid=fopen(filename,rvector=fscanf(fid,%g
5、,a b);标准化结果如下:v1=cwstd(vector)result=cwfac(v1);cwscore(v1,result);4.程序测试原始数据中国大陆35个大城市某年的10项社会经济统计指标数据见下表。城 市名 称年底总人口(万人) 非农业人口比(%) 农 业总产值(万元)工业客运总量货运总量(万吨)地方财政预算内收入(万元)城乡居民年底储蓄余额在岗职工人数(万人)在岗职工工资总额北 京1 81 843 42719 999 70620 32345 5622 790 86326 806 6465 773 301天 津 91 501 13622 645 5023 25926 3171 1
6、28 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呼和浩特365 343816 4522 3512 623105 7831 396 588309 337沈 阳1 295 4185 826 7337 78215 412567 9199 016 9981 152 811大 连 61 879 7398 426 38510 78019 187709 2277 556 796965
7、 922长 春1 853 2105 966 3434 8109 532357 0964 803 744884 447哈 尔 滨 72 663 8554 186 1236 7207 520481 4436 450 0201 309 151上 海 42 069 01954 529 0986 40644 4854 318 50025 971 2005 605 445南 京 1989 19913 072 73714 26911 193664 2995 680 4721 357 861杭 州1 414 73712 000 79617 88311 684449 5937 425 9671 180 947宁
8、 波1 428 23510 622 86622 21510 298501 7235 246 350824 034合 肥628 7642 514 1254 8931 517233 6281 622 931369 577福 州2 152 2886 555 3518 8517 190467 5245 030 220680 607厦 门 5333 3745 751 1243 7282 570418 7582 108 331657 484南 昌688 2892 305 8813 6743 189167 7142 640 460479 ,555济 南1 486 3026 285 8825 91511 77
9、5460 6904 126 970756 696青 岛2 382 32011 492 03613 40817 038658 4354 978 045961 704郑 州677 4255 287 60110 4336 768387 2525 135 338696 848武 汉1 211 2917 506 0859 79315 442604 6585 748 0551 314 766长 沙1 146 3673 098 1798 7065 718323 6603 461 244596 986广 州1 600 73823 348 13922 00723 8541 761 49920 401 8113
10、047 594深 圳299 66220 368 2958 7544 2741 847 9089 519 9001 890 338南 宁720 4861 149 6915 1303 293149 7002 190 918371 809海 口44 815717 4615 3452 356115 1741 626 800198 138重 庆3 4 168 7808 585 52552 44125 124898,9129 090 9691 606 804成 都1 935 5905 894 28940 14019 632561 1897 479 6841 200 671贵 阳362 0612 247 9
11、3415 7034 143197 9081 787 748419 681昆 明793 3563 605 7295 60412 042524 2164 127 900842 321西 安739 9053 665 94210 3119 766408 8965 863 980885 169兰 州259 4442 940 8841 8324 749169 5402 641 568550 890西 宁65 848711 3101 7461 46949 134855 051219 251银 川171 603661 2262 1061 19374 758814 103178 621乌鲁木齐78 5131 8
12、47 2412 6689 041254 8702 365 508517 622运行结果 cwprint(,35,10)fid =6数据标准化结果如下:v1 = std = 特征向量(vec):vec =特征值(val)val = 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 各主成分贡献率:newrate =第一、二主成分的载荷: 1 3 7 5 6 3 9 第一、二、三、四主成分的得分:score = 5 9 4 6 6 2 8 3 4 6 1 7 9 5 4 8 0 8 0