Mantels Test wird häufig in biologischen Studien verwendet , um die Korrelation zwischen der räumlichen Verteilung von Tieren (Position im Raum) und beispielsweise ihrer genetischen Verwandtschaft, Aggressionsrate oder einem anderen Attribut zu untersuchen. Viele gute Fachzeitschriften verwenden es ( PNAS, Tierverhalten, Molekulare Ökologie ... ).
Ich habe einige Muster hergestellt, die in der Natur vorkommen können, aber Mantels Test scheint völlig nutzlos zu sein, um sie zu erkennen. Andererseits hatte Morans I bessere Ergebnisse (siehe p-Werte unter jedem Diagramm) .
Warum verwenden Wissenschaftler nicht stattdessen Morans I? Gibt es einen versteckten Grund, den ich nicht sehe? Und wenn es einen Grund gibt, wie kann ich wissen (wie müssen die Hypothesen anders konstruiert sein), um den I-Test von Mantel oder Moran angemessen anzuwenden? Ein reales Beispiel wird hilfreich sein.
Stellen Sie sich diese Situation vor: Auf jedem Baum steht ein Obstgarten (17 x 17 Bäume) mit einer Krähe. Für jede Krähe sind Geräuschpegel verfügbar, und Sie möchten wissen, ob die räumliche Verteilung der Krähen durch das von ihnen verursachte Geräusch bestimmt wird.
Es gibt (mindestens) 5 Möglichkeiten:
"Gleich und gleich gesellt sich gern." Je ähnlicher Krähen sind, desto geringer ist der geografische Abstand zwischen ihnen (einzelner Haufen) .
"Gleich und gleich gesellt sich gern." Je ähnlicher die Krähen sind, desto kleiner ist der geografische Abstand zwischen ihnen (mehrere Cluster), aber ein Cluster von lauten Krähen hat keine Kenntnis über die Existenz des zweiten Clusters (ansonsten würden sie zu einem großen Cluster verschmelzen).
"Monotone Tendenz."
"Gegensätze ziehen sich an." Ähnliche Krähen können sich nicht ausstehen.
"Zufälliges Muster." Der Geräuschpegel hat keinen signifikanten Einfluss auf die räumliche Verteilung.
Für jeden Fall habe ich ein Punktdiagramm erstellt und den Mantel-Test verwendet, um eine Korrelation zu berechnen (es ist nicht verwunderlich, dass die Ergebnisse nicht signifikant sind, ich würde niemals versuchen, eine lineare Assoziation zwischen solchen Punktmustern zu finden).
Beispiel Daten: (wie möglich komprimiert)
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))]
Erstellen einer Matrix aus geografischen Entfernungen (für Morans I wird umgekehrt):
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
Ploterstellung:
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: In den Beispielen auf der Statistik-Hilfeseite der UCLA werden beide Tests mit genau den gleichen Daten und der exakt gleichen Hypothese verwendet, was nicht sehr hilfreich ist (vgl. Mantel-Test , Morans I ).
Antwort an IM Sie haben geschrieben:
... es [Mantel] prüft, ob sich ruhige Krähen in der Nähe anderer ruhiger Krähen befinden, während laute Krähen laute Nachbarn haben.
Ich denke, dass eine solche Hypothese nicht durch Mantel-Test geprüft werden konnte . In beiden Darstellungen gilt die Hypothese. Wenn Sie jedoch annehmen, dass ein Cluster von nicht lauten Krähen möglicherweise keine Kenntnis über die Existenz des zweiten Clusters von nicht lauten Krähen hat, ist der Manteltest erneut nutzlos. Eine solche Trennung sollte von Natur aus sehr wahrscheinlich sein (vor allem, wenn Sie Daten in größerem Maßstab erfassen).