dataset=[
263.862 1.61144 2.75468 0.266575
268.764 2.07218 2.61756 0.182597
261.196 1.59769 248.708 2.09609 253.365 1.69457 268.434 1.56819 258.741 2.14653 244.192 2.02156 219.738 1.61224 244.702 1.91477 245.286 2.12499 251.96 1.83714 2.35037 2.85279 2.9492 2.78113 2.69111 2.22607 1.88599 2.25945 2.35282 2.53519 0.182114
0.257724
0.189702
0.13252
0.136469
0.298066
0.166298
0.187569
0.161602
0.240271
251.164 1.74167 2.62961 0.211887
251.824 2.00133 2.62665 0.211991
257.68 2.14878 2.65686 0.203846]
stdr=std(dataset); %求个变量的标准差
[n,m]=size(dataset); %定义矩阵行列数
sddata=dataset./stdr(ones(n,1),:); %将原始数据采集标准化
sddata %输出标准化数据
[p,princ,eigenvalue,t2]=princomp(sddata);%调用前三个主成分系数
p3=p(:,1:3); %提取前三个主成分得分系数,通过看行可以看出对应的原始数据的列,每个列在每个主成分的得分
p3 %输出前三个主成分得分系数
sc=princ(:,1:3); %提取前三个主成分得分值
sc %输出前三个主成分得分值
e=eigenvalue(1:3)'; %提取前三个特征根并转置
M=e(ones(m,1),:).^0.5; %输出前三个特征根并转置
compmat=p3.*M; %利用特征根构造变换矩阵
per=100*eigenvalue/sum(eigenvalue); %求出成分载荷矩阵的前三列
per
%求出各主成分的贡献率
cumsum(per); figure(1)
pareto(per); t2
figure(2)
%输出各省与平局距离
plot(eigenvalue,'r+'); hold on
%列出各主成分的累积贡献率 %将贡献率绘成直方图
%绘制方差贡献散点图
%保持图形
plot(eigenvalue,'g-'); %绘制方差贡献山麓图
figure(3)
%关闭图形
plot(princ(:,1),princ(:,2),'+'); %gname
%,(rowname) [st2,index]=sort(t2);
%st2=flipud(st2);
%index=flipud(index);
%extreme=index(1);
%绘制2维成份散点图
%标示个别散点代表的省data市
因篇幅问题不能全部显示,请点此查看更多更全内容