La prueba de Mantel es ampliamente utilizada en estudios biológicos para examinar la correlación entre la distribución espacial de los animales (posición en el espacio) con, por ejemplo, su parentesco genético, tasa de agresión u otro atributo. Muchas revistas de renombre la utilizan (PNAS, Animal Behaviour, Molecular Ecology...).
He fabricado algunos patrones que pueden ocurrir en la naturaleza, pero la prueba de Mantel parece ser bastante inútil para detectarlos. Por otro lado, Moran's I dio mejores resultados (ver los valores p debajo de cada gráfico).
¿Por qué los científicos no utilizan Moran's I en vez de eso? ¿Hay alguna razón oculta que no veo? Y si hay alguna razón, ¿cómo puedo saber (cómo deben construirse las hipótesis de manera diferente) para usar apropiadamente la prueba de Mantel o Moran's I? Un ejemplo de la vida real sería útil.
Imagina esta situación: Hay un huerto (17 x 17 árboles) con un cuervo sentado en cada árbol. Los niveles de "ruido" para cada cuervo están disponibles y deseas saber si la distribución espacial de los cuervos está determinada por el ruido que hacen.
Existen (al menos) 5 posibilidades:
-
"Los pájaros del mismo plumaje vuelan juntos." Cuanto más similares sean los cuervos, menor será la distancia geográfica entre ellos (un solo grupo).
-
"Los pájaros del mismo plumaje vuelan juntos." Nuevamente, cuanto más similares sean los cuervos, menor será la distancia geográfica entre ellos, (múltiples grupos) pero un grupo de cuervos ruidosos no tiene conocimiento sobre la existencia del segundo grupo (de lo contrario, se fusionarían en un solo grupo grande).
-
"Tendencia monótona."
-
"Los opuestos se atraen." Los cuervos similares no pueden soportarse mutuamente.
-
"Patrón aleatorio." El nivel de ruido no tiene un efecto significativo en la distribución espacial.
Para cada caso, creé un gráfico de puntos y utilicé la prueba de Mantel para calcular una correlación (no es sorprendente que sus resultados no sean significativos, nunca intentaría encontrar una asociación lineal entre tales patrones de puntos).
Datos de ejemplo: (comprimidos lo más posible)
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))
# añadiendo colores
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))]
Creación de la matriz de distancias geográficas (para Moran's I se invierte):
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
Creación de la gráfica:
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("Prueba de Mantel", "\n z.stat =", round(my.res$z.stat,
2), "\n valor p =", 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 observado =", round(my.res$observed,
3), "\n esperado =",round(my.res$expected,3), "\n desv.estándar =",
round(my.res$sd,3), "\n valor p =", 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="distancia geográfica",
ylab="distancia comportamental")
}
P.D. en los ejemplos del sitio web de ayuda estadística de UCLA, ambas pruebas se usan en los mismos datos exactos y la misma hipótesis exacta, lo cual no es muy útil (cf., prueba de Mantel, Moran's I).
Respuesta a I.M. Has escrito:
...esta [Mantel]prueba analiza si los cuervos tranquilos están cerca de otros cuervos tranquilos, mientras que los cuervos ruidosos tienen vecinos ruidosos.
Creo que tal hipótesis NO podría ser probada por la prueba de Mantel. En ambos gráficos, la hipótesis es válida. Pero si supones que un grupo de cuervos no ruidosos puede no tener conocimiento sobre la existencia de un segundo grupo de cuervos no ruidosos, la prueba de Mantel es nuevamente inútil. Esta separación debería ser muy probable en la naturaleza (principalmente cuando estás llevando a cabo la recolección de datos a mayor escala).