PCA方法的MATLAB实现
PCA(主成分分析法):多个变量之间存在复杂关系,采取一种数学降维的方法,设法将原来众多具有一定相关性的变量,重新组合为一组新的相互无关的综合变量代替原来的变量。
数据导入及处理;
clc
clear all
A=xlsread('coporation.xlsx','B2:i16');
数据标准化处理;
a=size(A,1);
b=size(A,2);
for i=1:b
SA(:,i)=(A(:,i)-mean(A(:,i)))/std(A(:,i));
end
计算相关系数矩阵的特征值和特征总量;
CM=corrcoef(SA);%计算相关系数矩阵
[V,D]=eig(CM);%计算特征值和特征向量
for j=1:b
DS(j,1)=D(b+1-j,b+1-j);%对特征值按降序排列
end
for i=1:b
DS(i,2)=DS(i,1)/sum(DS(:,1));%贡献率
DS(i,3)=sum(DS(1:i,1))/sum(DS(:,1));%累积贡献率
end
选择主成分及对应的特征向量
T=0.9;%主成分信息保留率
for K=1:b
if DS(K,3)>=T
Com_num=K;
break;
end
end
提取主成分对应的特征向量;
for j=1:Com_num
PV(:,1)=V(: