欢迎来到天天文库
浏览记录
ID:13992775
大小:28.50 KB
页数:5页
时间:2018-07-25
《主成分分析源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、主成分分析源代码主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。在实证问题研究中,为了全面、系统地分析问题,我们必须考虑众多影响因素。这些涉及的因素一般称为指标,在多元统计分析中也称为变量。因为每个变量都在不同程度上反映了所研究问题的某些信息,并且指标之间彼此有一定的相关性,因而所得的统计数据反映的信息在一定程度上有重叠。在用统计方法研究多变量问题时,变量太多会增加计算量和增加分析问题的复杂性,人们希望在进行定量分析的过程中,涉及的变量较少,得到的信息量较多。主成分分析正是适应这一要求产生的。 主成分分析法是一种数学变换的方法,它把给定的一组相关变量
2、通过线性变换转成另一组不相关的变量,这些新的变量按照方差依次递减的顺序排列。在数学变换中保持变量的总方差不变,使第一变量具有最大的方差,称为第一主成分,第二变量的方差次大,并且和第一变量不相关,称为第二主成分。依次类推,I个变量就有I个主成分。 其中Li为p维正交化向量(Li*Li=1),Zi之间互不相关且按照方差由大到小排列,则称Zi为X的第I个主成分。设X的协方差矩阵为Σ,则Σ必为半正定对称矩阵,求特征值λi(按从大到小排序)及其特征向量,可以证明,λi所对应的正交化特征向量,即为第I个主成分Zi所数据标准化; 分析步骤 求相关系数矩阵; 一系列正交变换,使非对角线上的
3、数置0,加到主对角上; 得特征根xi(即相应那个主成分引起变异的方差),并按照从大到小的顺序把特征根排列; 求各个特征根对应的特征向量; 用下式计算每个特征根的贡献率Vi; Vi=xi/(x1+x2+........) 根据特征根及其特征向量解释主成分物理意义。对应的系数向量Li,而Zi的方差贡献率定义为λi/Σλj,通常要求提取的主成分的数量k满足Σλk/Σλj>0.85。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%functiony=pca(mixedsig)%程序说明:y=pca(
4、mixedsig),程序中mixedsig为n*T阶混合数据矩阵,n为信号个数,T为采样点数%y为m*T阶主分量矩阵。%n是维数,T是样本数。ifnargin==0error('Youmustsupplythemixeddataasinputargument.');endiflength(size(mixedsig))>2error('Inputdatacannothavemorethantwodimensions.');endifany(any(isnan(mixedsig)))error('InputdatacontainsNaN''s.');end%————————————
5、——去均值————————————meanValue=mean(mixedsig')';[m,n]=size(mixedsig);%mixedsig=mixedsig-meanValue*ones(1,size(meanValue));%当数据本身维数很大时容易出现Outofmemoryfors=1:mfort=1:nmixedsig(s,t)=mixedsig(s,t)-meanValue(s);endend[Dim,NumofSampl]=size(mixedsig);oldDimension=Dim;fprintf('Numberofsignals:%d',Dim);fpr
6、intf('Numberofsamples:%d',NumofSampl);fprintf('CalculatePCA...');firstEig=1;lastEig=Dim;covarianceMatrix=corrcoef(mixedsig');%计算协方差矩阵[E,D]=eig(covarianceMatrix);%计算协方差矩阵的特征值和特征向量%———计算协方差矩阵的特征值大于阈值的个数lastEig———%rankTolerance=1;%maxLastEig=sum(diag(D)>=rankTolerance);%lastEig=maxLastEig;lastEi
7、g=10;%——————————降序排列特征值——————————eigenvalues=flipud(sort(diag(D)));%—————————去掉较小的特征值——————————iflastEig
此文档下载收益归作者所有