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

博文

R语言PCA分析过程梳理及注意事项

已有 15768 次阅读 2020-3-21 14:12 |个人分类:统计学习|系统分类:科研笔记| PCA, vegan, FactoMineR, factoextra, vegan

R语言PCA分析过程梳理及注意事项

主成分分析PCA (Principal Component Analysis) 在生态学研究中比较常用,也有很多变化和外推形式: 如基于转化的PCA(Transformation-based Principal Component Analysis, tb-PCA)和主坐标分析(Principal Coordinate Analysis, PCoA)等。这些分析存在数据转化以及所使用距离矩阵上的差异,但总体分析过程大同小异,所以对整体过程进行梳理。关于PCA分析原理, 暂推荐 http://blog.csdn.net/zhongkelee/article/details/44064401,即通过降维找到能区分数据的最主要特征,如图一: 4个处理下的样品,每个样品检测了3个基因,用3个维度表示,直接观察十分杂乱,但通过降维可以明显区分,且最大程度保留原本数据信息。关于使用vegan包进行PCA分析详细过程,推荐 http://blog.sciencenet.cn/u/lyao222lll,非常详尽。


image.png


 

示例数据格式

 

library("FactoMineR")  ##PCA相关包1

library("factoextra")   ##PCA相关包2, 1和2同时需要

library(vegan)  # 传统PCA分析包1,使用vegan包分析使用RDA函数

library(permute)  # 传统PCA分析包2

library(lattice) # 传统PCA分析包3

library("ggplot2") # 作图使用

dataplfa1<-read.table("clipboard",header=T,fill=TRUE) #示例数据导入, Treatment 那一列放在最前可能会导致PCA分析无法运行,产生“variables are not quantitative:  Treatment”的错误。R自身问题,默认将变量视为因子。

##matrix < as.numeric(as.matrix(dataplfa1)) 不放在最后也可以,运行这两行代码

##dim(matrix) <- dim(dataplfa1)

res.pca<- PCA(dataplfa1[,-6], graph = FALSE) #PCA分析,vegan包分析使用RDA函数

fviz_eig(res.pca1, addlabels = TRUE, ylim = c(0, 50)) ## Scree plot碎石图,看每一个轴能够解释变异的大小,一般是前两轴

fviz_pca_ind(res.pca1, geom.ind = "point",col.ind = dataplfa1$Treatment, addEllipses =TRUE, legend.title=" Treatment" )  #相关包1和2 自带作图函数,很强大

summary(res.pca1) # 提取主要信息

md<-res.pca1$ind # 单独提取位置信息,能看到每个样品在新的坐标轴(即PC1和PC2)上的位置坐标,同时与微生物类群做相关性分析,以判断每一条轴主要涉及到哪些微生物群落变化,方便后续对结果进行描述。与RDA类似,同样可以使用ggplot2 对处理过的位置信息进行作图。

dataadon1<-read.table("clipboard",header=T)

dataadon2<-read.table("clipboard",header=T,fill=TRUE)  

adon<-adonis(dataadon1~Treatment,dataadon2,permutations=999,distance='euclidean') # 做完图之后进行permutational multivariate analysis of variance (PERMANOVA)置换检验,回答氮素水平的影响是否显著。现在有些文章不仅提供整体的检验,还要比较不同氮素水平影响即成对比较,我暂时没有用到,但是单独加载要比较的两个处理的数据是可以实现的,代码不变,就是麻烦一些。


FactoMineR和factoextra功能强大,前者分析,后者将结果可视化并完成解读,不仅可以做PCA,还可以做CA,MCA,MFA,大概区分如下图,这里推荐http://www.sthda.com/english/articles/22-principal-component-methods-videos/说推荐其实是怕自己以后找不到了,里面也有以上这几种分析的具体流程,很详细,很多以后会用到,还有一本书(有电子版),可以看看。

 

image.png

 




https://blog.sciencenet.cn/blog-3366717-1224596.html

上一篇:R语言RDA分析全过程梳理及注意事项
收藏 IP: 122.5.219.*| 热度|

0

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

数据加载中...

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

GMT+8, 2024-4-23 21:23

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部