MATLAB主成分分析法

更新时间:2023-07-17 09:27:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

统计与数学模型分析实验中心 《 MATLAB数据分析方法》实验报告

(4)排名的结果是否合理?为什么? 程序: clc,clear A=load('shiyan4_1.txt'); [m,n]=size(A); %根据指标的属性将原始数据统一趋势化,其中资产负债率为成本型,转换成,效益型。 A1=(A(:,1)-min(A(:,1)))./(max(A(:,1))-min(A(:,1))); A2=(A(:,2)-min(A(:,2)))./(max(A(:,2))-min(A(:,2))); A3=(max(A(:,3))-A(:,3))./(max(A(:,3))-min(A(:,3))); A4=(A(:,4)-min(A(:,4)))./(max(A(:,4))-min(A(:,4))); A5=(A(:,5)-min(A(:,5)))./(max(A(:,5))-min(A(:,5))); A6=(A(:,6)-min(A(:,6)))./(max(A(:,6))-min(A(:,6))); A=[A1,A2,A3,A4,A5,A6]; %利用相关系数矩阵进行主成分分析 R=corrcoef(A); %在指标中无明显的共线关系 [v,d]=eig(R);%计算特征值与特征向量 %输出结果显示,最大特征值对应的不是正向量,所以不能用第一主成分

进行排名 %利用协方差矩阵进行主成分分析 R1=cov(A); [v1,d1]=eig(R1); %输出结果显示,最大特征值对应的不是正向量,所以不能用第一主成分进行排名 %利用 R 矩阵进行主成分分析 for i=1:n for j=1:n R2(i,j)=2*dot(A(:,i),A(:,j))./[sum(A(:,i).^2)+sum(A(:,j).^2)]; end end [v2,d2]=eig(R2); w=sum(d2)/sum(sum(d2)); %输出结果显示,最大特征值对应的是正向量,且其贡献率为 71.68%,所以能用第一主成分进行排名 F=[A-ones(m,1)*mean(A)]*d(:,6); %计算主成分第一主成分得分 [F1,I1]=sort(F,'descend'); %给出各市名次的序号 [F2,I2]=sort(I1); %给出各市排名 plot(1:m,F,'*'); %主成分得分图 结果分析: (1)统一趋势化见程序中矩阵 A (2)利用协方差和相关系数,最大特征值对应的不是正向量,所以均不能用第一主成分进行排名 (3)构造的实对称矩阵,最大特征值对应的是正向量,且其贡献率为 71.68%,所以能用第一主成分 进行排名,排名结果为:

实 验 结 果 分 析

北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 16 6 11 27 17 15 30 14 13 5 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 4 23 7 19 10 20 21 12 9 2 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 1 29 18 25 8 31 24 26 28 22 新疆

3(4)排名结果不合理,因为从第一主成分得分图可以看出,指标的属性并没有明显的区别:1

0.5

0

-0.5

-1

-1.5

-2

0

5

10

15

20

25

30

35

建议利用总贡献率达到 90%以上后运用加权得分的结果,再进行排名得出结果。

教 师 评 语

本文来源:https://www.bwwdw.com/article/24a1.html

Top