主成分分析matlab源程序代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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-'); %绘制方差贡献山麓图

%关闭图形

plot(princ(:,1),princ(:,2),'+'); %绘制2维成份散点图

%gname

%,(rowname) %标示个别散点代表的省data市[st2,index]=sort(t2);

%st2=flipud(st2);

%index=flipud(index);

%extreme=index(1);

相关文档
最新文档