数学建模算法与应用【主成分分析法】

主成分分析的目的:数据的压缩;数据的解释;数据的降维

什么是主成分分析?

研究如何通过少数几个主成分(principal component)来解释多个变量间的内部结构。即从原始变量中导出少数几个主分量,使它们尽可能多地保留原始变量的信息,且彼此间互不相关
常被用来寻找判断事物或现象的综合指标,并对综合指标所包含的信息进行适当的解释

主成分分析的基本思想

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 主成分分析就是设法将原来众多具有一定相关性的变量(如p个变量),重新组合成一组新的相互无关的综合变量来代替原来变量。怎么处理?通常数学上的处理就是将原来p个变量作线性组合作为新的综合变量。
  • 如果将选取的第一个线性组合即第一个综合变量记为F1,自然希望F1尽可能多的反映原来变量的信息。
  • 最经典的方法就是用方差来表达,即varF1)越大,表示F1包含的信息越多。因此在所有的线性组合中所选取的F1应该是方差最大的,故称之为第一主成分 (principal componentl)。
  • 如果第一主成分不足以代表原来p个变量的信息,再考虑选取F2即第二个线性组合。F2称为第二主成分 (principalcomponent II)。 F1和F2的关系?
  • 为了有效地反映原来信息,F1已有的信息就不再出现在F2中即cov (F1,F2)=0。依此类推,可以获得p个主成分。因此,这些主成分之间是互不相关的,而且方差依次递减。在实际中,挑选前几个最大主成分来表征。标准?
  • 各主成分的累积方差贡献率>85%或特征根>1。

主成分分析的数学模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
KMO超过0.5可以做主成分分析,0.3-0.5也可以做但不推荐,0.3以下不能做主成分分析。
Sig显著性水平检验小于0.05可以做,大于0.05不推荐
两种数据满足其中一种就可以进行主程序检验。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主成分分析的步骤

  1. 对原来的p个指标进行标准化,以消除变量在水平和量纲上的影响
  2. 根据标准化后的数据矩阵求出相关系数矩阵
  3. 求出协方差矩阵的特征根和特征向量
  4. 确定主成分,并对各主成分所包含的信息给予适当的解释
    这一部分对照着书上看更容易理解。

例题

利用主成分分析对投资效益进行分析和排序。
在这里插入图片描述
代码

clc,clear
gj=load('data14_7.txt');%获取数据
gj=zscore(gj); %数据标准化
r=corrcoef(gj);  %计算相关系数矩阵
%下面利用相关系数矩阵进行主成分分析,x的列为r的特征向量,即主成分的系数
[x,y,z]=pcacov(r) %y为r的特征值,z为各个主成分的贡献率
f=repmat(sign(sum(x)),size(x,1),1); %构造与x同维数的元素为±1的矩阵
x=x.*f %修改特征向量的正负号,每个特征向量乘以所有分量和的符号函数值
num=3;  %num为选取的主成分的个数
df=gj*x(:,[1:num]);  %计算各个主成分的得分
tf=df*z(1:num)/100; %计算综合得分
[stf,ind]=sort(tf,'descend');  %把得分按照从高到低的次序排列
stf=stf', ind=ind'

运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Luohuasheng_/article/details/128687758