ANOSIM(analysis ofsimilarities)分析,也叫相似性分析,主要是用于分析高维度数据组间相似性的统计方法,比如我们经常做完PCoA、NMDS等降维分析的时候(如下图),看着组间样本是区分开的,但是缺少一个P值,说明这种差异到底是否显著。 ANOSIM是非参数检验,常用于生态学数据分析中,用于评估两组实验数据的整体相似性,以及相似性是否显著。其基本原理如下: 1)实验设计是有分组的,比如Group1和Group2,每个组3个重复; 2)两两之间的相似性,分为组内和组间,如下: 计算公式如下: rb = mean rank of between group dissimilarities(组间差异性秩的平均值) rw = mean rank of within group dissimilarities(组内差异性秩的平均值) n = the number of samples(总的样本个数) 所有R的值域范围是[-1, 1]: R <> R = 0,表示组间没有差异,说明实验组和对照组之间没有差异 R > 0,表示组间差异大于组内差异,说明实验组和对照组之间存在差异 当然,如果我们得出R值大于0,还不足以说明实验组和对照组之间存在差异,我们还缺少一个p值,此时常用的检验方法是Permutation Test(置换检验): 1) 对原始样本随机分组,分为实验组和对照组, 2) 计算随机分组的Ri值,并和R比较(Ri > R), 3) 并重复1000次, 4) 计算p = Ri 大于 R的百分比,p<> 举例说明计算过程: 比如我们有case和control两组(Group1,Group2)多维度的数据如下: 首先我们需要计算样本之间的相似性,常用的方法有 Bray-curtis、euclidean等等,得到相似性矩阵,如下: 其次计算秩(也就是说从小到大排序),把相似性矩阵转换成秩矩阵,如下: 随后计算组内和组间的平均秩rb = 15.56,rw = 13.08,并计算R=(15.56-13.08)/(0.25*8*7) = 0.17,如下: 利用置换检验的方法计算p值,如下的方法重复1000次, rb= 14.06,rw = 15.08: 实例演示 我们还是利用R中鸢尾花数据集(iris)作为演示,iris数据集150个样本,4个维度的变量,分为3组,我们先用NMDS方法了解一下iris数据集的相似性情况,如下: 我们能看到三组数据能分得很开,也直观地可以看出组间差异大于组内差异,现在我们用ANOSIM分析,在R中vegan包提供了ANOSIM分析的函数anosim: anosim(dat,grouping, permutations = 999, distance = 'bray', …) dat 可以是相似性矩阵,也可以是row为sample,columns为variable的dataframe grouing 分组信息 permutations 置换检验的次数,默认是999次 distance 如果dat是dataframe,计算相似性矩阵的方法,默认是bray Curtis 从上图我们可以看出R = 0.858 > 0, p = 0.001, 说明组间差异显著大于组内差异,从下图boxplot图我们也能直观的得出此结论。 /End. |
|