组间差异分析:Adonis

原创
03/12 17:06
阅读数 715

要想在科学上成功,最重要的一点就是对科学的热爱,坚持长期探索。from 达尔文

通常我们在做假设检验的时候,是看一个分组变量(也即因子型变量)对某个数值变量的影响,这时候我们针对数据特征可以选择合适的检验方法(详见往期文章 R中的假设检验方法 ),如下所示:

这种统计检验就是分析不同分组数据的差别,分组可以来自实验本身的区组设计,也可以来自聚类分析。当情形变得更复杂些——不同分组不再是单个数据变量,而是一个个数据矩阵的时候,例如微生物群落数据,我们需要更复杂的方法来进行分析,也就是组间差异分析的主要内容。

上期文章我们介绍了 Anosim分析 Anosim 分析的一个缺点就是只能分析一个分组因素的影响,当有两个因素同时影响时可能得出错误结果。今天来介绍另一种非参数差异分析 Adonis
ADONIS 又称置换多因素方差分析( permutational MANOVA ,也即 PERMANOVA )或非参数多因素方差分析( nonparametric MANOVA ),是一种基于样品距离 ( 默认为 distance="bray" ,可以选择其他距离,也可以直接使用距离矩阵进行分析 ) 的非参数多元方差分析方法,是 MANOVA 的等同形式。该方法可分析不同分组因素对样品距离的解释度,记组间距离的方差为 SSb 、组内距离的方差为 SSw ,假如数据受分组影响显著,那么 SSb 应远小于 SSw ,因此构造统计量 F

其中 n 为样本总数, m 为组数。假如组间差异不显著,即各组样本均来自同一总体,那么 F≈1 ;假如组间差异显著, F>>1 与方差分析的 MANOVA 不同的是, Adonis 使用置换来获得统计量 F 的分布而不是使用标准 F 分布来进行判断,因此是非参数方法。在 R Adonis 分析可以使用 vegan 包中的 adonis() 以及 adonis2() 函数,示例如下:
#读取物种和环境因子信息data=read.csv("otu_table.csv", header=TRUE, row.names=1)envir=read.table("environment.txt", header=TRUE)rownames(envir)=envir[,1]env=envir[,-1]#筛选高丰度物种并将物种数据标准化means=apply(data, 1, mean)otu=data[names(means[means>10]),]otu=t(otu)#根据地理距离聚类kms=kmeans(env, centers=3, nstart=22)Position=factor(kms$cluster)#进行Adonis分析library(vegan)adonis=adonis(otu~Position, permutations=999)adonis

可以看到检验结果也是显著的,而且结果中给出了每部分的R2

Anosim MRPP 不同的是, Adonis 稳健性大大提高,而且既可以处理因子变量也可以处理连续的数值变量(实质上就是回归)。由于 Adonis 为置换多因素方差分析,所以可以灵活使用方差分析的公式,因此分析效果大大增强。下面我们分析经纬度单独的影响,使用多元双因素方差分析的公式:
adonis2=adonis(otu~Latitude*Longitude, env, permutations=999)adonis2

可以看出,经度、纬度以及两者交互对微生物群落均有显著影响。
示例数据下载链接:

链接:https://pan.baidu.com/s/1X0W-ns8kSdwzyliycYwV8A

提取码: 65pc

本文分享自微信公众号 - 微生态与微进化(MicroEcoEvo)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部