bioseq的个人博客分享 http://blog.sciencenet.cn/u/bioseq

博文

R语言多元分析系列之:主成分分析

已有 6236 次阅读 2012-9-20 13:48 |系统分类:科研笔记| R语言, 测序, 分析, 多元分析, 主成分

主成分分析(principal components analysis, PCA)是一种分析、简化数据集的技术。它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是在处理观测数目小于变量数目时无法发挥作用,例如基因数据。
R语言中进行主成分分析可以采用基本的princomp函数,将结果输入到summary和plot函数中可分别得到分析结果和碎石图。但psych扩展包更具灵活性。

一、选择主成分个数选择主成分个数通常有如下几种评判标准:
  • 根据经验与理论进行选择
  • 根据累积方差的门槛值,例如选择使累积方差达到80%的主成分个数。
  • 根据相关系数矩阵的特征值,选择特征值大于1的主成分。
另一种较为先进的方法是平行分析(parallel analysis)。该方法首先生成若干组与原始数据结构相同的随机矩阵,求出其特征值并进行平均,然后和真实数据的特征值进行比对,根据交叉点的位置来选择主成分个数。我们选择USJudgeRatings数据集举例,首先加载psych包,然后使用fa.parallel函数绘制下图,从图中可见第一主成分位于红线上方,第二主成分位于红线下方,因此主成分数目选择1。

fa.parallel(USJudgeRatings[,-1], fa="pc", n.iter=100, show.legend=FALSE)



二、提取主成分
pc=principal(USJudgeRatings[,-1],nfactors=1)
PC1    h2   u21 0.92 0.84 0.15652 0.91 0.83 0.16633 0.97 0.94 0.06134 0.96 0.93 0.07205 0.96 0.92 0.07636 0.98 0.97 0.02997 0.98 0.95 0.04698 1.00 0.99 0.00919 0.99 0.98 0.019610 0.89 0.80 0.201311 0.99 0.97 0.0275

从上面的结果观察到,PC1即主成分负荷,是观测变量与主成分之间的相关系数,h2是变量能被主成分解释的比例,u2则是不能解释的比例。(在中国测序论坛,有更多讨论。)
三、旋转主成分旋转是将主成分负荷进行变换,以方便解释。可分为正交旋转和斜交旋转。正交旋转的流行方法是方差最大化,需要在principal中增加rotate='varimax'参数

四、计算主成分得分主成分得分是各变量的线性组合,需在principal中增加score参数,结果将存放在scores中。但注意如果输入数据不是原始数据时,则无法计算主成分得分。


https://blog.sciencenet.cn/blog-777771-614715.html

上一篇:生物信息学相关网站
下一篇:鉴定某一基因功能的方法大全
收藏 IP: 159.226.43.*| 热度|

1 黄艳新

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-11 01:14

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部