- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§10.利用Matlab编程实现主成分分析
1.概述
Matlab语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言便捷接口的功能。 语言在各国高校与研究单位起着重大的作用① 计算相关系数矩阵
(1)
在(3.5.3)式中,rij(i,j=1,2,…,p)为原变量的xi与xj之间的相关系数,其计算公式为
(2)
因为R是实对称矩阵(即rij=rji),所以只需计算上三角元素或下三角元素即可。
② 计算特征值与特征向量
首先解特征方程,通常用雅可比法(Jacobi)求出特征值,并使其按大小顺序排列,即;然后分别求出对应于特征值的特征向量。这里要求=1,即,其中表示向量的第j个分量。
③ 计算主成分贡献率及累计贡献率
主成分的贡献率为
累计贡献率为
一般取累计贡献率达85—95%的特征值所对应的第一、第二,…,第m(m≤p)个主成分。
④ 计算主成分载荷
其计算公式为
(3)
得到各主成分的载荷以后,还可以按照(3.5.2)式进一步计算,得到各主成分的得分
(4)
2.程序结构及函数作用
在软件Matlab中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab种自带程序实现。下面主要主要介绍利用Matlab的矩阵计算功能编程实现主成分分析。
2.1程序结构
主函数
子函数
2.2函数作用
Cwstd.m——用总和标准化法标准化矩阵
Cwfac.m——计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷
Cwscore.m——计算各主成分得分、综合得分并排序
Cwprint.m——读入数据文件;调用以上三个函数并输出结果
3.源程序
3.1 cwstd.m
%cwstd.m,用总和标准化法标准化矩阵
function std=cwstd(vector)
cwsum=sum(vector,1); %对列求和
[a,b]=size(vector); %矩阵大小,a为行数,b为列数
for i=1:a
for j=1:b
std(i,j)= vector(i,j)/cwsum(j);
end
end
3.2 cwfac.m
%cwfac.m
function result=cwfac(vector);
fprintf(相关系数矩阵:\n)
std=CORRCOEF(vector) %计算相关系数矩阵
fprintf(特征向量(vec)及特征值(val):\n)
[vec,val]=eig(std) %求特征值(val)及特征向量(vec)
newval=diag(val) ;
[y,i]=sort(newval) ; %对特征根进行排序,y为排序结果,i为索引
fprintf(特征根排序:\n)
for z=1:length(y)
newy(z)=y(length(y)+1-z);
end
fprintf(%g\n,newy)
rate=y/sum(y);
fprintf(\n贡献率:\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 sumrate0.85
break;
end
end %记下累积贡献率大85%的特征值的序号放入newi中
fprintf(主成分数:%g\n\n,length(newi));
fprintf(主成分载荷:\n)
for p=1:length(newi)
for q=1:length(y)
result(q,p)=sqrt(newval(newi(p)))*vec(q,newi(p));
end
e
您可能关注的文档
- BUCK变换器电路的分析.pptx
- 第6章 汽油机后处理净化.doc
- Buck变换器滑模控制的研究(孙明志).ppt
- Buck变换器环路的设计(修改).doc
- C# chap08 数据库及应用.pdf
- 第7章 光电式与光纤传感器.doc
- 第8章 光电传感器.doc
- C6-7-8证券交易和的分析.doc
- 第8章 水溶液中离子平衡.doc
- 第9章 信息技术与课程整合.doc
- 2023年06月江苏泰州医药高新区(高港区)医疗卫生事业单位招考聘用34人笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年06月湖南常宁市卫健系统急需紧缺专业技术人才引进25人笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年06月陕西安康职业技术学院招考聘用笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年06月鲁东大学招考聘用20人笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年06月安徽阜阳师范大学招考聘用高层次人才笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年06月广东湛江市人民政府办公室公开招聘合同制工作人员10人笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年07月上海市龙华烈士陵园(龙华烈士纪念馆)招考聘用笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年07月上海市卫生和健康发展研究中心(上海市医学科学技术情报研究所)公开招聘10人笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年06月齐鲁工业大学(山东省科学院)招聘工作人员(21名)笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年06月广东茂名高州市教育局下属事业单位招考聘用笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
文档评论(0)