主成分分析方法和matlab运用解释.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主成分分析方法 在许多实际问题中,多个变量之间是具有一定的相关关系的。因此,我们就会很自然地想到,能否在各个变量之间相关关系研究的基础上,用较少的新变量代替原来较多的变量,而且使这些较少的新变量尽可能多地保留原来较多的变量所反映的信息?事实上,这种想法是可以实现的,这里介绍的主成分分析方法就是综合处理这种问题的一种强有力的方法。 一、主成分分析的基本原理 主成分分析是把原来多个变量化为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术。假定有n个地理样本,每个样本共有p个变量描述,这样就构成了一个n×p阶的地理数据矩阵: (1) 如何从这么多变量的数据中抓住地理事物的内在规律性呢?要解决这一问题,自然要在p维空间中加以考察,这是比较麻烦的。为了克服这一困难,就需要进行降维处理,即用较少的几个综合指标来代替原来较多的变量指标,而且使这些较少的综合指标既能尽量多地反映原来较多指标所反映的信息,同时它们之间又是彼此独立的。那么,这些综合指标(即新变量)应如何选取呢?显然,其最简单的形式就是取原来变量指标的线性组合,适当调整组合系数,使新的变量指标之间相互独立且代表性最好。 如果记原来的变量指标为x1,x2,…,xp,它们的综合指标——新变量指标为z1,z2,…,zm(m≤p)。则 (2) 在(2)式中,系数lij由下列原则来决定: (1)zi与zj(i≠j;i,j=1,2,…,m)相互无关; (2)z1是x1,x2,…,xp的一切线性组合中方差最大者;z2是与z1不相关的x1,x2,…,xp的所有线性组合中方差最大者;……;zm是与z1,z2,……zm-1都不相关的x1,x2,…,xp的所有线性组合中方差最大者。 这样决定的新变量指标z1,z2,…,zm分别称为原变量指标x1,x2,…,xp的第一,第二,…,第m主成分。其中,z1在总方差中占的比例最大,z2,z3,…,zm的方差依次递减。在实际问题的分析中,常挑选前几个最大的主成分,这样既减少了变量的数目,又抓住了主要矛盾,简化了变量之间的关系。 从以上分析可以看出,找主成分就是确定原来变量xj(j=1,2,…,p)在诸主成分zi(i=1,2,…,m)上的载荷lij(i=1,2,…,m;j=1,2,…,p),从数学上容易知道,它们分别是x1,x2,…,xp的相关矩阵的m个较大的特征值所对应的特征向量。 二、主成分分析的计算步骤 通过上述主成分分析的基本原理的介绍,我们可以把主成分分析计算步骤归纳如下: 计算相关系数矩阵 (3) 在公式(3)中,rij(i,j=1,2,…,p)为原来变量xi与xj的相关系数,其计算公式为 因为R是实对称矩阵(即rij=rji),所以只需计算其上三角元素或下三角元素即可。 (2)计算特征值与特征向量 首先解特征方程|λI-R|=0求出特征值λi(i=1,2,…,p),并使其按大小顺序排列,即λ1≥λ2≥…,≥λp≥0;然后分别求出对应于特征值λi的特征向量ei(i=1,2,…,p)。 计算主成分贡献率及累计贡献率 主成分贡献率:,累计贡献率:。 一般取累计贡献率达85-95%的特征值λ1,λ2,…,λm所对应的第一,第二,……,第m(m≤p)个主成分。 计算主成分载荷 (5) 由此可以进一步计算主成分得分: (6) matlab:princomp解释 主成分分析函数: [coeff,score,letent]=princomp(x); 供献率:每一维数据对于区分全部数据的供献,供献率最大的显然是主成分,第二大的是次主成分...... [coef,score,latent,t2]?=?princomp(x); x:为要输入的n维原始数据。带入这个matlab自带函数,将会生成新的n维加工后的数据(即score)。此数据与之前的n维原始数据一一对应。 score:生成的n维加工后的数据存在score里。它是对原始数据进行的解析,进而在新的坐标系下获得的数据。他将这n维数据按供献率由大到小分列。(即在改变坐标系的景象下,又对n维数据排序) latent:是一维列向量,每一个数据是对应score里响应维的供献率,因为数占领n维所以列向量有n个数据。由大到小分列(因为score也是按供献率由大到小分列)。 coef:是系数矩阵。经由过程cofe可以知道x是如何转换成score的。但这个转换不是单纯的转换,必须使用下列计算方法,即score(:,i)=coef*(x(:,i)-mean(x(:,i))),这样才能得到。 用你的原矩阵x*coeff(:,1:n)才是你要的的新数据,其中的n是你想降到多少维。 而n的取值取决于对特征值的累计贡献率的计算。

文档评论(0)

youyang99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档