Principal Components Analysis

这个协方差矩阵是一个nXn的,且是对称矩阵,就会有n个特征值λ和特征向量v,每个特征向量也是n维的。第一行特征向量v对应特征值λ1 。
**D(yk):**表示主成分yk的方差。方差越大,说明携带的信息越多。



表1 我国各地区普通高等教育发展状况数据

标准化后的数据,其协方差矩阵就是相关系数矩阵。
代码:
Matlab
clc,clear
load gj.txt %把原始数据保存在纯文本gj.txt中
gj=zscore(gj);%数据标准化
r=corrcoef(gj);%计算相关系数矩阵(协方差矩阵)
%下面利用相关系数矩阵进行主成分分析,vec1的列为r的特征向量,即主成分的系数
[vec1,lamda,rate]=pcacov(r);%lamda为r的特征值,rate为各个主成分的贡献值
num=4;%num为选取的主成分的个数
df=gj*vec1(:,1:num);%计算前四个主成分的得分
tf=df*rate(1:num)/100;%计算综合得分
[std,ind]=sort(tf,'descend');%把得分按照从高到低的次序排序,std就是得分,ind是原来的标号