为什么Mantel的考试比Moran的I更受青睐?


36

Mantel的测试广泛用于生物学研究中,以检查动物的空间分布(在空间中)与它们的遗传相关性,侵略率或其他属性之间的相关性。许多优秀的期刊正在使用它( PNAS,动物行为,分子生态学...)。

我捏造了一些自然界中可能出现的模式,但是Mantel的测试似乎无法检测到它们。另一方面,Moran's I的结果更好(请参见各图下的p值)

为什么科学家们不使用莫兰的我呢?有一些我看不到的隐藏原因吗?如果有某种原因,我如何知道(必须以不同的方式构造假设)以适当地使用我测试的Mantel或Moran的?一个真实的例子会有所帮助。

想象这种情况:每棵树上都有一个乌鸦的果园(17 x 17棵树)。每个乌鸦的“噪音”级别都可用,您想知道乌鸦的空间分布是否由它们发出的噪音决定。

至少有5种可能性:

  1. “羽毛鸟聚集在一起。” 相似的乌鸦越多,它们之间的地理距离(单个簇)越小。

  2. “羽毛鸟聚集在一起。” 同样,乌鸦越相似,它们之间的地理距离就越小(多簇),但是一簇嘈杂的乌鸦不知道第二簇的存在(否则它们会融合成一个大簇)。

  3. “单调趋势。”

  4. “异性相吸。” 类似的乌鸦不能站在一起。

  5. “随机模式。” 噪声水平对空间分布没有重大影响。

对于每种情况,我都创建了一个点图并使用Mantel检验来计算相关性(不足为奇的是,其结果不显着,我永远也不会尝试在这些点模式之间找到线性关联)。

在此处输入图片说明


示例数据:( 尽可能压缩)

r.gen   <- seq(-100,100,5)
r.val   <- sample(r.gen, 289, replace=TRUE)
z10     <- rep(0, times=10)
z11     <- rep(0, times=11)
r5      <- c(5,15,25,15,5)
r71     <- c(5,20,40,50,40,20,5)
r72     <- c(15,40,60,75,60,40,15)
r73     <- c(25,50,75,100,75,50,25)
rbPal   <- colorRampPalette(c("blue","red"))
my.data <- data.frame(x = rep(1:17, times=17),y = rep(1:17, each=17),
             c1=c(rep(0,times=155),r5,z11,r71,z10,r72,z10,r73,z10,r72,z10,r71,
             z11,r5,rep(0, times=27)),c2 = c(rep(0,times=19),r5,z11,r71,z10,r72,
             z10,r73,z10,r72,z10,r71,z11,r5,rep(0, times=29),r5,z11,r71,z10,r72,
             z10,r73,z10,r72,z10,r71,z11,r5,rep(0, times=27)),c3 = c(seq(20,100,5),
             seq(15,95,5),seq(10,90,5),seq(5,85,5),seq(0,80,5),seq(-5,75,5),
             seq(-10,70,5),seq(-15,65,5),seq(-20,60,5),seq(-25,55,5),seq(-30,50,5),
             seq(-35,45,5),seq(-40,40,5),seq(-45,35,5),seq(-50,30,5),seq(-55,25,5),
             seq(-60,20,5)),c4 = rep(c(0,100), length=289),c5 = sample(r.gen, 289, 
             replace=TRUE))

# adding colors
my.data$Col1 <- rbPal(10)[as.numeric(cut(my.data$c1,breaks = 10))]
my.data$Col2 <- rbPal(10)[as.numeric(cut(my.data$c2,breaks = 10))]
my.data$Col3 <- rbPal(10)[as.numeric(cut(my.data$c3,breaks = 10))]
my.data$Col4 <- rbPal(10)[as.numeric(cut(my.data$c4,breaks = 10))]
my.data$Col5 <- rbPal(10)[as.numeric(cut(my.data$c5,breaks = 10))]

创建地理距离矩阵(对于Moran's I,则反过来):

point.dists           <- dist(cbind(my.data$x, my.data$y))
point.dists.inv       <- 1/point.dists
point.dists.inv       <- as.matrix(point.dists.inv)
diag(point.dists.inv) <- 0

绘图创建:

X11(width=12, height=6)
par(mfrow=c(2,5))
par(mar=c(1,1,1,1))

library(ape)
for (i in 3:7) {
  my.res <- mantel.test(as.matrix(dist(my.data[ ,i])), as.matrix(point.dists))
  plot(my.data$x,my.data$y,pch=20,col=my.data[ ,c(i+5)], cex=2.5, xlab="", 
       ylab="", xaxt="n", yaxt="n", ylim=c(-4.5,17))
  text(4.5, -2.25, paste("Mantel's test", "\n z.stat =", round(my.res$z.stat, 
   2), "\n p.value =", round(my.res$p, 3)))

  my.res <- Moran.I(my.data[ ,i], point.dists.inv)
  text(12.5, -2.25, paste("Moran's I", "\n observed =", round(my.res$observed, 
   3), "\n expected =",round(my.res$expected,3), "\n std.dev =", 
       round(my.res$sd,3), "\n p.value =", round(my.res$p.value, 3)))
}

par(mar=c(5,4,4,2)+0.1)

for (i in 3:7) {
  plot(dist(my.data[ ,i]), point.dists,pch = 20, xlab="geographical distance", 
       ylab="behavioural distance")
}

PS在UCLA统计帮助网站上的示例中,两个测试都用于完全相同的数据和完全相同的假设,但这并不是很有帮助(请参阅Mantel检验Moran's I)。

对IM的回复 您已写:

... [Mantel]测试安静的乌鸦是否位于其他安静的乌鸦附近,而吵闹的乌鸦是否有吵闹的邻居。

我认为不能通过Mantel检验来检验这种假设。在两个图上,假设均成立。但是,如果您假设一个不吵杂的乌鸦群可能不了解第二个不吵杂的乌鸦群的存在-Mantels测试仍然是无用的。这种分离实际上应该是很有可能的(主要是在进行大规模数据收集时)。

在此处输入图片说明

Answers:


18

壁炉架测试和Moran's是两个非常不同的概念。

使用Moran's I的原因是空间自相关的问题:变量与自身通过空间的相关性。当想知道区域单元中事件的发生在多大程度上或不太可能在邻近区域单元中事件的发生时,可以使用MoranI。换句话说(使用您的示例):如果树上有吵闹的乌鸦,附近是否有其他吵闹的乌鸦?Moran's I的零假设是目标变量中没有空间自相关。

使用Mantel检验的原因是变量之间的相似性或相异性问题。当想要知道就预测变量(空间)而言相似的样本是否也就因变量(物种)而言也趋于相似时,便使用了Mantel检验。简而言之:彼此靠近的样本在成分上是否也相似,并且彼此在空间上隔开的样本在成分上是否也不同?以您的示例为例:它测试安静的乌鸦是否位于其他安静的乌鸦附近,而嘈杂的乌鸦是否有嘈杂的邻居。零假设与空间位置和DV之间没有关系。
除此之外,部分Mantel测试还允许在控制第三个变量的同时比较两个变量。
例如,比较时需要Mantel测试

  • 两组生物,它们形成同一组样本单元;
  • 骚扰前后的社区结构;
  • 遗传/生态距离和地理距离。

是有关Mantel测试及其应用的很好的讨论。

(根据Ladislav Nado的新示例进行编辑)

如果我猜得出来,那么造成您困惑的原因是,您一直在考虑示例中的空间和噪声,要么是两个连续变量,要么是一个距离矩阵(空间中的位置)和一个连续变量(噪声)。实际上,要分析两个这样的变量之间的相似性,应该将它们两个都视为距离矩阵。那是:

  • 一个矩阵(例如,用于空间)描述了每对地理坐标的差异。彼此相邻的2只乌鸦的价值低于彼此分开的乌鸦的价值;
  • 另一个矩阵(用于环境,遗传或任何其他结构)描述了给定点上测量结果之间的差异。噪声水平相似的两只乌鸦的值(安静还是嘈杂都没关系-只是相似度的度量!)比噪声水平不同的一对乌鸦的值低。

然后,Mantel测试计算这两个矩阵中对应值的叉积。让我再次强调,Mantel统计量是两个距离矩阵之间的相关性,并且不等同于用于形成这些矩阵的变量之间的相关性

现在,让我们看一下您在图片A和B中显示的两种结构。
在图片A中,每对乌鸦之间的距离对应于它们的噪声水平的相似性。噪声水平差异较小的乌鸦(每只安静的乌鸦与另一只安静的乌鸦,每只嘈杂的乌鸦与另一只嘈杂的乌鸦)保持靠近,而每一对噪声水平都很大的乌鸦(一只安静的乌鸦与吵闹的乌鸦)彼此远离。壁炉架测试正确显示了两个矩阵之间存在空间相关性。
但是,在图片B中,乌鸦之间的距离并不对应于它们的噪声水平的相似性。当所有吵闹的乌鸦在一起时,安静的乌鸦可能会也可能不会靠近。实际上,某些异类乌鸦(一个安静+一个嘈杂)中的距离小于某些异性乌鸦(两个都安静时)的距离。
图片B中没有证据表明,如果研究人员随机捡起两只相似的乌鸦,它们将是邻居。没有证据表明,如果研究人员随机捡起两只相邻的(或不是那么遥远)的乌鸦,它们将是相似的。因此,最初的主张On both plots the hypothesis valid是不正确的。如图B所示的结构显示两个矩阵之间没有空间相关性,因此未通过Mantel测试。

当然,实际上存在不同类型的结构(具有一个或多个类似对象的簇,或者根本没有清晰的簇边界)。壁炉架测试非常适用,对测试它的测试非常有用。如果我建议您再读一遍,本文将使用真实数据并以非常简单易懂的术语讨论Moran的I,Geary的c和Mantel测试。

希望现在一切都更加清晰了;不过,如果您觉得仍然缺少某些内容,我可以扩大这个解释。


1
感谢您的回答,但我认为您写的假设(关于真实的Mantel测试假设)对真实的数据没有用。我在上面补充了我的答复,如果您对此答复,我将非常高兴。也许我错了。
LadislavNaďo2013年

@Ladislav Nado我已经更新了答案。如有需要,请随时询问更多解释。
IM

非常感谢,当我“阅读”您推荐的文章时,我终于明白了。
LadislavNaďo2013年

1
@LadislavNado太好了!很高兴有帮助。
IM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.