主成分分析 matlab手把手教操作、SPSS、python实例分析 (2)

   

主成分分析 matlab手把手教操作、SPSS、python实例分析

由于任何具有

主成分分析 matlab手把手教操作、SPSS、python实例分析

形式的矩阵是半正定的,所以S也是半正定的。

主成分分析 matlab手把手教操作、SPSS、python实例分析

 

数据的总方差是指S中对角线上方差的综合。一般地,一个方阵S中对角元素之和称为矩阵的迹,记作tr(S),这样

{总方差}=tr{S}

S中的元素

主成分分析 matlab手把手教操作、SPSS、python实例分析

称为xixj的协方差。   

    

主成分分析 matlab手把手教操作、SPSS、python实例分析

将特征值从大到小排序,取贡献率到90%的前k个特征。

    

主成分分析 matlab手把手教操作、SPSS、python实例分析

 

可得到P、D

    

主成分分析 matlab手把手教操作、SPSS、python实例分析

下面贴完整代码:

clc; clear all; close all; X=[2.5 2.4; 0.5 0.7; 2.2 2.9; 1.9 2.2; 3.1 3.0; 2.3 2.7; 2 1.6; 1 1.1; 1.5 1.6; 1.1 0.9;]; X=X\' % X=[74 87 84 88 74 86 69 73 64; % 85 83 83 77 69 84 74 85 84; % 83 91 89 85 87 86 83 86 85; % 69 100 82 96 84 82 97 98 76; % 97 48 89 36 46 53 88 89 97; % 59 98 93 94 98 100 79 83 61;]; % X=X\'; % X=[2 0 -1.4; % 2.2 0.2 -1.5; % 2.4 0.1 -1; % 1.9 0 -1.2;]; % X=X\'; [a,b]=size(X); M=sum(X)/a; for i=1:b B(:,i)=X(:,i)-M(i); %B=zscore(X); end S=1/(a-1)*B*B\'; [vector,value]=eig(S); vector value=diag(value) varine=sum(value); [value_sort,subscript]=sort(value,\'descend\'); value_sort; subscript; value_sort=value_sort/sum(value_sort); compare=0; sign=0; for i=1:b if compare<0.9 sign=sign+1; compare=compare+value_sort(i); end end for i=1:sign P(:,i)=vector(:,subscript(i)); end P D=zeros(sign,sign); for i=1:sign D(i,i)=value(subscript(i)); end D

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdpdf.html