利用 Matlab 编程实现主成分分析1
概述 Matlab 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件
它起源于矩阵运算,并已经进展成一种高度集成的计算机语言
它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言的便捷接口的功能
Matlab 语言在各国高校与讨论单位起着重大的作用
主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术
1 主成分分析计算步骤 ① 计算相关系数矩阵 (1)在(3
3)式中,rij(i,j=1,2,…,p)为原变量的 xi 与 xj 之间的相关系数,其计算公式为 (2)因为 R 是实对称矩阵(即 rij=rji),所以只需计算上三角元素或下三角元素即可
② 计算特征值与特征向量首先解特征方程,通常用雅可比法(Jacobi)求出特征值,并使其按 大 小 顺 序 排 列 , 即; 然 后 分 别 求 出 对 应 于 特 征 值的 特 征 向 量
这里要求=1,即,其中表示向量的第 j 个重量
③ 计算主成分贡献率及累计贡献率主成分的贡献率为累计贡献率为一般取累计贡献率达 85—95%的特征值所对应的第一、第二,…,第 m(m≤p)个主成分
④ 计算主成分载荷其计算公式为 (3)得到各主成分的载荷以后,还可以根据(3
2)式进一步计算,得到各主成分的得分 (4)2
程序结构及函数作用在软件 Matlab 中实现主成分分析可以实行两种方式实现:一是通过编程来实现;二是直接调用 Matlab 种自带程序实现
下面主要主要介绍利用 Matlab 的矩阵计算功能编程实现主成分分析
1 程序结构 主函数 子函数 2
2 函数作用Cwstd
m—-用总和标准化法标准化矩阵Cwfac
m——计算相关系数矩阵;计算特征值和特