首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >组间差异分析:Adonis

组间差异分析:Adonis

作者头像
SYSU星空
发布2022-05-05 13:51:45
发布2022-05-05 13:51:45
7K0
举报
要想在科学上成功,最重要的一点就是对科学的热爱,坚持长期探索。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()函数,示例如下:

代码语言:javascript
复制
#读取物种和环境因子信息
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为置换多因素方差分析,所以可以灵活使用方差分析的公式,因此分析效果大大增强。下面我们分析经纬度单独的影响,使用多元双因素方差分析的公式:

代码语言:javascript
复制
adonis2=adonis(otu~Latitude*Longitude, env, permutations=999)
adonis2

可以看出,经度、纬度以及两者交互对微生物群落均有显著影响。

示例数据下载链接:

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

提取码:65pc

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微生态与微进化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档