主成分分析1.主成分分析定义主成分分析是数学上对数据降维的一种方法。即希望用较少的变量去解释原来资料的大部分变量。选出比原始变量个数少,能解释大部分资料中变量的几个新变量,即所谓主成分。通常数学上的处理就是将原来具有一定相关性的指标(比如p个指标),重新组合成一组新的互不相关的综合指标来代替原来指标,作为新的综合指标。2.主成分分析的数学模型设有n个样品(多元观测值),每个样品观测p项指标(变量):X1,X2,…,Xp,得到原始数据资料阵:其中Xi=(x1i,x2i,…,xni)',i=1,2,…,p。),...,,(.....................21212222111211pnpnnppXXXxxxxxxxxxX线性组合用数据矩阵X的p个列向量(即p个指标向量)X1,X2,…,Xp作线性组合,得综合指标向量:简写成:Fi=a1iX1+a2iX2+…+apiXpi=1,2,…,p注:ai为向量11112121212122221122...............ppppppppppFaXaXaXFaXaXaXFaXaXaX补充说明在所有的线性组合中所选取的F1应该是方差最大的,称F1为第一主成分。如果第一主成分不足以代表原来p个指标的信息,再考虑选取F2即选第二个线性组合。为了有效地反映原有信息,F1已有的信息就不需要再出现在F2中,用数学语言表达就是要求Cov(F1,F2)=0。称F2为第二主成分,依此类推可以构造出第三、第四、…、第p个主成分。但是这种线性组合,如果不加限制,则可以有很多,应该如何去选取呢?对a加以限制对组合系数ai'=(a1i,a2i,…,api)作如下要求:即:ai为单位向量。此外,piaaapiii,...,2,1,1...222211)Fi与Fj(i≠j,i,j=1,…,p)互不相关,即协方差:Cov(Fi,Fj)=02)F1是X1,X2,…,Xp的一切线性组合(系数满足上述要求)中方差最大的,即其中c=(c1,c2,…,cp)'3)F2是与F1不相关的X1,X2,…,Xp一切线性组合中方差最大的,…,Fp是与F1,F2,…,Fp-1都不相关的X1,X2,…,Xp的一切线性组合中方差最大的。满足上述要求的综合指标向量F1,F2,…,Fp就是主成分。1'11()max()piicciVarFVarcX对F限制这p个主成分从原始指标所提供的信息总量中所提取的信息量依次递减,每一个主成分所提取的信息量用方差来度量,主成分方差的贡献就等于原指标相关系数矩阵相应的特征值,每一个主成分的组合系数ai'=(a1i,a2i,…,api)就是相应特征值所对应的单位特征向量ti。方差的贡献率为越大,说明相应的主成分反映综合信息的能力越强。1/piiiiiii3.主成分分析的步骤(1)标准化(2)计算协方差矩阵(3)求出Σ的特征值及相应的特征向量(4)选择主成分(5)计算主成分得分3.1标准化实际应用时,指标的量纲往往不同,所以在主成分计算之前应先消除量纲的影响。消除数据的量纲有很多方法,常用方法是将原始数据标准化,即做如下数据变换:其中,j=1,2,…,p。标准化后的数据阵记为X*,其中每个列向量(标准化变量)的均值为0,标准差为1,数据无量纲。此时n个样品在m个主成分上的得分应为:Fj=a1jX1*+a2jX2*+...+apjXp*j=1,2,…,m*1,2,...,;1,2,...,ijjijjxxxinjps11njijixxn2211()1njijjisxxn3.2计算协方差矩阵计算样品数据的协方差矩阵:Σ=(sij)pp,其中i,j=1,2,…,p11()()1nijkiikjjksxxxxn3.3求出Σ的特征值及相应的特征向量求出协方差矩阵Σ的特征值12…p0及相应的正交化单位特征向量:则X的第i个主成分为Fi=ai'Xi=1,2,…,p。pppppppaaaaaaaaaaaa......,,...,...212221221211113.4选择主成分在已确定的全部p个主成分中合理选择m个来实现最终的评价分析。一般用方差贡献率解释主成分Fi所反映的信息量的大小,m的确定以累计贡献率达到足够大(一般在85%以上)为原则。1/piikk11()/pmikikGm3.5计算主成分得分计算n个样品在m个主成分上的得分:i=1,2,…,m1122...iiipipFaXaXaX主成分分析程序代码输出原始数据矩阵xx=[7.47,1.73,7.20,0.13,0.40,1.33,1.07,36.05;6.67,1.67,18.00,0.67,4.67,19.00,5.50,26.00;3.32,2.48,36.43,2.17,7.15,22.99,11.95,60.95;3.00,2.29,19.02,1.62,6.90,3.57,18.50,49.14;1.67,3.08,48.98,3.69,29.66,31.50,65.53,272.23;1.96,3.23,14.44,1.64,18.02,33.12,33.10,68.73;1.25,3.69,42.00,4.25,22.22,19.94,53.50,70.00;1.47,9.87,49.15,3.48,4.11,22.37,19.92,67.10;2.02,0.97,16.99,12.29,18.00,17.36,3.66,16.59;2.41,1.56,2.81,15.79,3.42,21.61,2.44,24.26;1.00,2.15,40.16,14.27,5.74,53.90,9.24,27.90;1.70,0.77,3.13,5.00,6.32,11.48,10.23,30.77;0.97,0.12,2.39,21.16,8.08,16.21,41.26,18.84;2.86,3.29,29.70,1.91,17.04,41.90,12.05,31.90;1.41,5.58,44.18,6.51,10.88,31.98,12.92,31.69;1.02,0.86,13.08,1.59,11.15,21.91,26.67,22.28;0.84,0.24,2.16,21.14,3.56,24.94,18.73,25.61;1.00,0.23,6.11,13.95,4.59,17.19,26.95,18.01;0.74,1.39,14.21,20.55,4.29,15.54,54.11,38.96;0.49,0.83,9.03,13.69,1.39,24.35,59.15,49.86;1.20,0.23,2.01,20.99,1.06,25.23,23.84,52.05;1.38,0.31,0.71,5.27,0.98,3.97,68.88,33.79;1.79,0.63,8.00,4.67,4.58,6.92,65.92,61.50;1.53,2.84,17.27,3.06,18.51,11.59,19.65,49.50;0.78,2.33,33.11,2.78,18.17,7.28,75.46,51.56;3.83,1.00,53.83,3.53,3.50,0.17,52.67,111.67;2.50,2.67,49.88,3.14,3.83,8.33,48.33,43.33;1.48,4.32,27.61,1.68,47.29,1.81,69.42,443.10][n,p]=size(x);MEAN=mean(x);%求各变量的均值STD=std(x);%求各变量的标准差MEAN=ones(n,p)*diag(MEAN);STD=ones(n,p)*diag(STD);n=(x-MEAN)./STD;Z=n%得到标准化后的样本点矩阵ZR=cov(Z)%相关系数矩阵R[V,D]=eig(R);%v特征向量矩阵DD=[];%将特征值对角矩阵D改写为列向量DDfori=p:-1:1DD=[DD;D(i,i)];endOFFER=DD/sum(DD);%计算特征值的方差贡献率cumOFFER=cumsum(DD)/sum(DD);%计算特征值的方差累计贡献率OUTCOME=[DD,OFFER,cumOFFER]PCACOV=V(:,end:-1:end-3)%取前四个(计方差贡献率达到86.15%所以输出正交单位化特征向量矩阵V的前4列F=Z*PCACOV