【R生态】非参数多元检验(ADONIS、ANOSIM、PERMANOVA及MRPP等多元方差分析)

您所在的位置:网站首页 差异是否显著怎么比较顺序 【R生态】非参数多元检验(ADONIS、ANOSIM、PERMANOVA及MRPP等多元方差分析)

【R生态】非参数多元检验(ADONIS、ANOSIM、PERMANOVA及MRPP等多元方差分析)

2024-07-15 10:55| 来源: 网络整理| 查看: 265

💂 个人信息:酷在前行👍 版权: 博文由【酷在前行】原创、需要转载请联系博主👀 如果博文对您有帮助,欢迎点赞、关注、收藏 + 订阅专栏🔖 本文收录于【R生态】,该专栏主要介绍R语言在微生态等领域的应用,如降维分析,物种与物种间及环境因子的关系,群落构建机制等等。请大家多多关注点赞和支持,共同进步~ 欢迎大家订阅!

📋 文章目录 🐣 一、非参数多元检验的简介及作用🐤 二、R语言代码学习过程  🍌 1、ADONIS分析  🥝 2、ANOSIM分析  🍎 3、MRPP分析 🦅 三、ADONIS、ANOSIM、MRPP的比较和选择       PCA、PCoA、NMDS、CCA及RDA分析,这些都属于降维分析,大家应该都比较熟悉了。此外,大家可能常在微生物生态及环境等领域的文章中看到ADONIS、ANOSIM、PERMANOVA、MRPP等分析(均为 多元非参数检验 ),大家可能对这几种分析还不太了解。通常这些方法与上述的降维分析相结合,前者能够获得定性的结论,而后者可以获得 定量 的结果。因此,借此与大家分享多元非参数检验,包括如何对其进行选择,及如何借助R语言实现这一过程。

🐣 一、非参数多元检验的简介及作用

   在微生物生态领域有一种分析被广泛应用,便是降维分析,例如有PCA、PCoA、NMDS、CCA、RDA等等。这些分析主要是基于距离矩阵来计算不同处理或者条件下样本组间物种组成的相似性和差异性。而前者都是定性的方法,正如先前的推文曼特尔分析(Mantel test),Mantel或者Partial Mantel可以与CCA联用,来定量判断微生物群落与环境变量两个矩阵的相关性。利用以下分析方法,主要包括ADONIS、ANOSIM、MRPP等来定量分析不同分组因素对样品差异的解释度,并通过置换检验进行显著性分析,判断是否具有统计学意义。

   ADONIS ,被称为 多元方差分析 ,亦称为PERMANOVA (Permutational multivariate analysis of variance,置换多元方差分析)或非参数多因素方差分析(nonparametric MANOVA),是一种 基于样品距离(默认为Bray-Curtis或者其余距离如Euclidean) 的非参数多元方差分析,是MANOVA的等同形式。它通过线性模型分析不同分组因素或环境因子(如土壤理化性质等)对样品差异的解释度,并使用置换检验进行显著性分析。

   ANOSIM (Analysis of similarities) ,通常被称为组间差别分析,是一种用于比较组间(两组或多组)的差异是否显著大于组内差异的非参数检验,从而判断分组是否有意义。默认利用 Bray-Curtis 算法计算两两样品间的距离,然后将所有距离从小到大进行排序, 先计算 R 值,再将样品进行置换。

   MRPP (Multiple Response Permutation Procedure) ,被称为多响应置换过程分析,通常也用于检验组间(两组或多组)的差异是否显著大于组内差异。与Anosim 分析类似,可利用半定量(如 Bray-Curtis)或定量距离矩阵(如 Euclidean)计算 A 值表示组间差异,使用置换检验对分组进行显著性分析。

🐤 二、R语言代码学习过程

   通过上面对几种方法的简要介绍后,相信大家已经有一个基本的了解,同时也清楚了MANOVA与ADONIS是同类分析。接下来,主要介绍它们如何在R语言中使用和运行: 重点:上面所描述的方法主要基于"vegan"R程序包。

  🍌 1、ADONIS分析 # ADONIS-------------------------------- library(vegan) # R包加载 ?adonis() # 向help咨询函数的用法

在这里插入图片描述 我们发现是有两种函数可供选择的。进一步加载数据:

# 物种数据 data(dune) head(dune) # Achimill Agrostol Airaprae Alopgeni Anthodor Bellpere Bromhord Chenalbu Cirsarve Comapalu Eleopalu Elymrepe Empenigr Hyporadi # 1 1 0 0 0 0 0 0 0 0 0 0 4 0 0 # 2 3 0 0 2 0 3 4 0 0 0 0 4 0 0 # 3 0 4 0 7 0 2 0 0 0 0 0 4 0 0 # 4 0 8 0 2 0 2 3 0 2 0 0 4 0 0 # 5 2 0 0 0 4 2 2 0 0 0 0 4 0 0 # 6 2 0 0 0 3 0 0 0 0 0 0 0 0 0 # Juncarti Juncbufo Lolipere Planlanc Poaprat Poatriv Ranuflam Rumeacet Sagiproc Salirepe Scorautu Trifprat Trifrepe Vicilath # 1 0 0 7 0 4 2 0 0 0 0 0 0 0 0 # 2 0 0 5 0 4 7 0 0 0 0 5 0 5 0 # 3 0 0 6 0 5 6 0 0 0 0 2 0 2 0 # 4 0 0 5 0 4 5 0 0 5 0 2 0 1 0 # 5 0 0 2 5 2 6 0 5 0 0 3 2 2 0 # 6 0 0 6 5 3 4 0 6 0 0 3 5 5 0 # Bracruta Callcusp # 1 0 0 # 2 0 0 # 3 2 0 # 4 2 0 # 5 2 0 # 6 6 0 # 环境变量数据 data(dune.env) head(dune.env) # A1 Moisture Management Use Manure # 1 2.8 1 SF Haypastu 4 # 2 3.5 1 BF Haypastu 2 # 3 4.3 2 SF Haypastu 4 # 4 4.2 2 SF Haypastu 4 # 5 6.3 1 HF Hayfield 2 # 6 4.3 1 HF Haypastu 2

使用两种函数查看差异:

adonis(dune~A1, data=dune.env, permutations = 999) # ?adonis2 adonis2(dune~A1, data=dune.env, permutations = 999)

在这里插入图片描述 当利用adonis2函数跑同样模型时,能看到Terms added sequentially (first to last);这里与adonis不同,表明环境因子的顺序对结果存在影响,特别是环境因子之间存在相关性时。

进一步看adonis函数改变不同变量顺序的结果:

adonis(dune~A1+Moisture, data=dune.env, permutations = 999) adonis(dune~Moisture+A1, data=dune.env, permutations = 999)

在这里插入图片描述 于是利用adonis针对Al和Moisture两个变量更改顺序:结果显示当Al在前时,其解释了总体差异的16.8%,而Moisture解释了27.6%; 当Al在后时,仅解释了总体差异的0.04%,而Moisture解释了40.2%。该结果也说明了不同环境变量之间本身是存在相关性,可以利用adonis2函数(by=“margin”)计算边缘概率。也就是控制某一变量,探究其他变量对物种群落的影响。

利用adonis2函数计算边缘概率进行检验:

adonis2(dune~Moisture+A1, data=dune.env, permutations=999, by="margin") adonis2(dune~A1+Moisture, data=dune.env, permutations=999, by="margin")

在这里插入图片描述 在控制A1时,Moisture对物种群落的影响是显著的。反之,在控制Moisture时,A1不显著。

此外,我们还可以使用dbrda函数 (基于距离的冗余分析)来判断边缘概率:

by1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3