dataset=[
263.862
1.61144
2.75468
0.266575
268.764
2.07218
2.61756
0.182597
261.196
1.59769
2.35037
0.182114
248.708
2.09609
2.85279
0.257724
253.365
1.69457
2.9492
0.189702
268.434
1.56819
2.78113
0.13252
258.741
2.14653
2.69111
0.136469
244.192
2.02156
2.22607
0.298066
219.738
1.61224
1.88599
0.166298
244.702
1.91477
2.25945
0.187569
245.286
2.12499
2.35282
0.161602
251.96
1.83714
2.53519
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-');
%
绘制方差贡献山麓图