目录
主成分分析程序
function [y,v2,u2,gongxianlv,leijigongxianlv,z]=zhuchenfen(x)
%y返回相关系数矩阵 v2返回特征值 u2返回特征向量
% gongxianlv贡献率 leijigongxianlv累计贡献率 z主成分载荷矩阵
a=size(x);
n=a(1); %数据的个数
p=a(2); %变量的个数.
%-----第一步---计算相关系数矩阵------------
X=mean(x); %得到x每列的平均值,列数为p
for i=1:p
for j=1:p
for k=1:n
t1(k)= ( x(k,i)-X(i) )*( x(k,j)-X(j) ) ;
t2(k)= ( x(k,i)-X(i) )^2;
t3(k)= ( x(k,j)-X(j) )^2 ;
end
t4=sum(t1); %t1到t6都是一些临时变量,主要为方便中间的计算
t5=sum(t2);
t6=sum(t3);
r(i,j)=t4/sqrt(t5*t6); %r(i,j)为相关系数矩阵的每个元素
end
end
y=r;
%--------------第二步:计算特征值v2与特征向量u2
[u,v]=eig(r); %u矩阵的每一列为v的每一个对应特征值对应的特征向量
v=diag(v); %将对角矩阵v转化成向量v(结果会按从小到大