【mantel test R 语言实现】

Mantel test是检验两个矩阵相关性的方法,尤其适用于环境因子与微生物群落相关性的分析。本文介绍了Mantel test的基本检验过程、应用场景、图形解读,并提供了R语言的实操教程,包括相关性热图的绘制和数据处理。文章还讨论了Mantel检验的原理,强调了其在生态学和流行病学中的应用。
摘要由CSDN通过智能技术生成

Mantel test 是对两个矩阵相关关系的检验,之所以抛开相关系数发展这样一种方法,是因为「相关系数只能处理两列数据之间的相关性,而在面对两个矩阵之间的相关性时就束手无策」。另外,普通的相关分析只能检验单个环境因子与单个微生物类群(例如单个属)之间的相关性,而基于距离矩阵的「Mantel test可以检验单个或一组环境因子与整个微生物群落的相关性」。Mantel test的相关性越大,p值越小,则说明环境因子对微生物群落的影响越大。

应用场景
  • 微生物群落与生态环境变量之间的相关性;

  • 人体微生物区与某疾病程度的相关性;

  • 不同药物组合处理疾病后,微生物组成结构与病情改善之间的相关性;

基本检验过程

Mantel test,顾名思义,是一种检验。既然是检验就得有原假设,它的原假设是两个矩阵之间没有相关关系。检验过程如下:

  • 两个矩阵都对应展开,变成两列,计算相关系数(理论上什么相关系数都可以计算,但常用pearson相关系数),

  • 然后其中一列或两列同时随机打乱,再计算一个值,反复打乱成千上万次,看打乱前的r值,在打乱后所得r值分布中的位置,如果跟随机置换得到的结果较近,则不大相关,反之则为显著。

mantel test 相关性热图的解读

  • 左边4个点表示4个分组,注意:点虽然只有一个,但表示的是矩阵数据!

  • 右边每个理化因子之间做相关性热图,颜色表示相关系数

  • 在通过manlel test,将左边矩阵与每个理化因子相关联

  • 注意:左边可以是一个大矩阵,也可以采用某些方法划分成若干小矩阵

  • 中间连线部分的宽窄和颜色分别代表r的统计量和显著性p值

融会贯通:应用到自己的研究

1.如果你有三个物种的数据和环境理化因子数据,你想知道哪些理化因子分别对三个物种影响最大?(当然也不一定要物种数据,可以换成其它)

2.探索不同环境中的酶活性与理化因子间的关系

3.探索不同科目与生活习惯之间的关系

(语文、数学、英语和性别、年龄、性格等等等)

mantel test 相关性热图的绘制

1.数据准备

本示例演示的数据来源于vegan包中自带

两个表:一个是物种信息,一个是理化因子的信息

varechem数据包含了24个土壤样本(行)的14项土壤理化性质信息(列)。varespec数据包含了24个土壤样本(行)的44个物种(列)的丰度信息。

图片

图片

假设44个物种可以被划分4个大类,制作成4个矩阵分别是Spec01、Spec02、Spec03、Spec04。普通的相关系数分析只能够判断两列数据之间的相关性,比如整个varechem数据中各列两两之间的相关性,或者varechem数据中的某列与varespec数据中某列之间的相关性。

数据集介绍:

  • varespec 描述了24块样地中44种植物的丰度信息

  • varechem 描述了这24块样地土壤的14个性质参数。

同样的,对于「微生物的丰度」我们也可以采用类似的数据形式呈现,并绘图。

如果我们想要分析varechem数据中的某列与整个Spec01数据(每个物种是一列,有多列)的相关性,那普通的相关分析方法就无用武之地啦。这个时候就要用到Mantel test方法了。

Mantel test不仅可以用于分析一列数据与一个矩阵数据之间的相关性,还可以分析一个矩阵数据与另一个矩阵数据之间的相关性。

Mantel test具体原理:

  1. 「数据准备」:首先,有两个数据矩阵,它们代表了你想要比较的两组数据。这些矩阵可以是任何类型的,比如距离矩阵、相关系数矩阵等。

  2. 「计算距离或相似性」:如果矩阵中的数据不是距离或相似性数据,需要将其转换为距离或相似性矩阵。这一步是将原始数据转化为适合Mantel test的形式,一般采用欧氏距离、皮尔逊相关系数等方法。

  3. 「计算Mantel统计量」:接下来,计算两个矩阵之间的相关性统计量,常用的是Pearson相关系数。这个相关系数表示两个矩阵中对应位置数据的相关程度。

  4. 「随机重排检验」:为了确定观察到的相关性是否显著,通常会进行随机重排检验。这个步骤是通过对其中一个矩阵进行随机重排来生成新的对照数据,然后重新计算相关性统计量,多次重复这个过程来得到一个分布。最后,将观察到的相关性与这个分布进行比较来判断是否显著。

图形解读

热图的颜色代表土壤理化性质之间的相关系数,热图中方块的大小代表土壤理化性质之间的显著性。网络线的线宽代表mantel检验的相关性,网络线的颜色代表mantel检验的显著性。

总体而言,该图形的热图部分展示了varechem数据内部各列之间的相关性,网络图部分展示了varechem每列数据与4个矩阵数据的相关性。

#################### 加载R包和查看示例数据 ####################
# 加载R包
library(tidyverse)
library(ggcor)
library(vegan)

# 查看数据:
data("varechem", package = "vegan")
varechem[1:5,1:10]
#       N    P     K    Ca    Mg    S    Al   Fe    Mn   Zn
# 18 19.8 42.1 139.9 519.4  90.0 32.3  39.0 40.9  58.1  4.5
# 15 13.4 39.1 167.3 356.7  70.7 35.2  88.1 39.0  52.4  5.4
# 24 20.2 67.7 207.1 973.3 209.1 58.1 138.0 35.4  32.1 16.8
# 27 20.6 60.8 233.7 834.0 127.2 40.7  15.4  4.4 132.0 10.7
# 23 23.8 54.5 180.6 777.0 125.8 39.5  24.2  3.0  50.1  6.6

data("varespec", package = "vegan")
varespec[1:5,1:10]
#    Callvulg Empenigr Rhodtome Vaccmyrt Vaccviti Pinusylv Descflex Betupube
# 18     0.55    11.13     0.00     0.00    17.80     0.07      0.0        0
# 15     0.67     0.17     0.00     0.35    12.13     0.12      0.0        0
# 24     0.10     1.55     0.00     0.00    13.47     0.25      0.0        0
# 27     0.00    15.13     2.42     5.92    15.97     0.00      3.7        0
# 23     0.00    12.68     0.00     0.00    23.73     0.03      0.0        0
#    Vacculig Diphcomp
# 18     1.60     2.07
# 15     0.00     0.00
# 24     0.00     0.00
# 27     1.12     0.00
# 23     0.00     0.00

2.自己在演示代码时容易出错的问题总结:

安装ggcor包(这不是R自带的包,有些无法通过install.package函数直接进行安装,只能自己下载安装)

安装ggcor

ggcor包是比较难安装的,直接使用install.package()是无法安装的,在R的镜像中是无法存在的,很多大神都是将上传到GitHub中。如果你运气好,那么一次就可以安装,但如果你没有一点运气,那就需要花费很长的时间。我自己安转就花费了很多的时间,如果你按照我一下的方法也无法安装,那你就继续找”度娘“吧。
## 
# install.packages("devtools") 
devtools::install_github("houyunhuang/ggcor") 
 
# install.packages("devtools") 
devtools::install_git("https://gitee.com/houyunhuang/ggcor.git") 
## ggcor下载 
https://gitee.com/try-quiet/ggcor.git 
 
## 下载下来后进行安装 
devtools::install("~/R/x86_64-pc-linux-gnu-library/4.1/ggcor_master/",force = TRUE) 
devtools::install_local("~/R/x86_64-pc-linux-gnu-library/4.1/ggcor_master",force = TRUE) 

注意:安装devtools时,如果对话框弹出yes,选择它

           安装ggcor时,按enter跳过更新

(5)测试安装包方法:用Rstudio打开解压包中readme.RMD文件

运行随便其中一组代码,出现好看的图就说明安装成功!恭喜各位

教程一

教程网址:https://mp.weixin.qq.com/s/7mYz

代码区域:

## 导入相关R包 
library(corrplot) 
library(vegan) 
library(ggcor)

本教程使用的数据是来自vegan包

> head(varechem) 
      N    P     K    Ca    Mg    S    Al   Fe    Mn   Zn  Mo Baresoil Humdepth  pH 
18 19.8 42.1 139.9 519.4  90.0 32.3  39.0 40.9  58.1  4.5 0.3     43.9      2.2 2.7 
15 13.4 39.1 167.3 356.7  70.7 35.2  88.1 39.0  52.4  5.4 0.3     23.6      2.2 2.8 
24 20.2 67.7 207.1 973.3 209.1 58.1 138.0 35.4  32.1 16.8 0.8     21.2      2.0 3.0 
27 20.6 60.8 233.7 834.0 127.2 40.7  15.4  4.4 132.0 10.7 0.2     18.7      2.9 2.8 
23 23.8 54.5 180.6 777.0 125.8 39.5  24.2  3.0  50.1  6.6 0.3     46.0      3.0 2.7 
19 22.8 40.9 171.4 691.8 151.4 40.8 104.8 17.6  43.6  9.1 0.4     40.5      3.8 2.7 
 
> head(varespec) 
   Callvulg Empenigr Rhodtome Vaccmyrt Vaccviti Pinusylv Descflex Betupube Vacculig Diphcomp Dicrsp Dicrfusc Dicrpoly 
18     0.55    11.13     0.00     0.00
  • 16
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮肤小白生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值