|||
温馨提示:
R语言的准确性待与PRIMER和PAST软件对比验证,目前验证的PERMANOVA数据结果在PEIMER和PAST软件中结果相同,但在R中有与其它2种软件结果不同的情况!下文R代码均为R软件自身提供,本博文不保证其准确性和适用性。
欢迎大家共同讨论,并期待R大神分享(R code for PERMANOVA)解决方案。
PERMANOVA与ANOSIM(Analysis of similarities)等方法的目的类似,即比较样品组间的差异显著性。例:对多组数据进行聚类分析后得到2个大类,但是想知道这2个大类之间的差异是否显著,即可用上述方法。
ANOSIM比较的是组内或组间距离的平均值;对于样本量大小变化很敏感,适用于样本在欧式平面(Euclidean space)中单个数据变化有重要意义的情况;另,ANOSIM对异质性数据(方差不齐)很敏感,方差不等的情况不宜使用。
PERMANOVA比ANOSIM更强大,比较的是各组重心之间的差异;对样本数N以及方差的齐次性要求不高,推荐使用。
以上论述推荐参考:
Anderson M,Walsh D.(2013) PERMANOVA, ANOSIM and the Mante test in the face of heterogeneous dispersions: What null hypothesis are you testing?. Ecological Monographs,83(4):557-574.
Step1:数据填写方式如下图,及导入到R
其中,
FishBio6.csv为6种鱼的某一指标(如体长SL/cm)的数据;
FishEnv6.csv为6种鱼对应的2个分组,分组可以依据实际需要进行分类或者按照聚类结果(如对FishBio6.csv基于UPGMA算法进行聚类)进行分类。
FishBio.backup.csv显示出了第一列为鱼的种类,第2列开始均为SL数据,但这个csv文件只是便于大家理解数据的含义,在编码过程中不使用。
FishBio6<-read.csv("~/FishBio6.csv")
View(FishBio6)FishEnv6<- read.csv("~/FishEnv6.csv")View(FishEnv6)
#上图为FishBio6.csv文件
#上图为FishEnv6.csv文件
#上图为FIshBio.backup.csv文件
Step2:进行PERMANOVA计算,结果如下图
library(vegan)adonis(FishBio6~FishEnv6$Group,data = FishEnv6,permutations = 999,method="bray")->ad1ad1
#上图为PERMANOVA计算结果
本例结果为,Group1和Group2之间的相关性系数的平方R2 = 0.35871,p-value = 0.1。
# 每进行一个999次permutations,得到p-value可能会有微小的波动,F-value和R2值等都不变。
# 但是,R软件自带代码得到的PERMANOVA结果与PRIMER及PAST软件结果不一致!!!
Step2 代码还可写为:
library(vegan)
distance.bray6<-vegdist(FishBio6,method = 'bray')
adonis(distance.bray6~FishEnv6$Group,data = FishEnv6,permutations = 999,method="bray")->ad2ad2
#但 ad2与ad1结果完全相同,所以不需要单独计算Bray-Curtis dissimilarity(distance.bray6)
文中难免纰漏或错误之处,欢迎大家批评指正。
相关博文:
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-21 22:07
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社