Mantel testi , biyolojik çalışmalarda , hayvanların mekansal dağılımı (uzayda konum) arasındaki ilişkiyi, örneğin genetik bağıntıları, saldırganlık oranları veya başka bir nitelik ile incelemek için yaygın olarak kullanılmaktadır . Bol miktarda iyi dergi kullanıyor ( PNAS, Hayvan Davranışı, Moleküler Ekoloji ... ).
Doğada oluşabilecek bazı desenler ürettim, ama Mantel'in testi onları tespit etmekte oldukça yararsız görünüyor. Öte yandan, Moran'ın daha iyi sonuçlar aldım (bkz . Her parselin altındaki p değerleri) .
Bilim adamları neden Moran'ın benini kullanmıyorlar? Görmememin gizli bir nedeni var mı? Ve eğer bir neden varsa, Mantel veya Moran Testini uygun şekilde kullanmak için nasıl (nasıl hipotezlerin farklı şekilde oluşturulması gerektiğini) bilebilirim? Gerçek hayattan bir örnek, yardımcı olacaktır.
Bu durumu hayal edin: Her ağaçta bir karga bulunan bir meyve bahçesi (17 x 17 ağaç) vardır. Her karga için "gürültü" seviyesi mevcuttur ve kargaların uzamsal dağılımının yaptıkları gürültü tarafından belirlenip belirlenmediğini bilmek istersiniz.
(En az) 5 olasılık vardır:
"Tencere yuvarlanmış kapağını bulmuş." Benzer kargalar, aralarındaki coğrafi mesafe ne kadar küçükse (tek küme) .
"Tencere yuvarlanmış kapağını bulmuş." Yine, benzer kargalar ne kadar küçükse, aralarındaki coğrafi uzaklık o kadar küçüktür (çoklu kümeler), ancak bir grup gürültülü karga, ikinci kümenin varlığı hakkında hiçbir bilgiye sahip değildir (aksi halde büyük bir kümeye kaynaşırlar).
"Monotonik trend."
"Karşıtların çekimi." Benzer kargalar birbirlerine dayanamazlar.
"Rastgele desen." Gürültü seviyesinin mekansal dağılım üzerinde önemli bir etkisi yoktur.
Her durum için, bir nokta grafiği oluşturdum ve bir korelasyonu hesaplamak için Mantel testini kullandım (sonuçlarının önemsiz olması şaşırtıcı değil, bu tür noktaların modelleri arasında hiçbir zaman doğrusal bir ilişki bulmaya çalışmadım).
Örnek veriler: (mümkün olduğunca sıkıştırılmış)
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))]
Coğrafi mesafeler matrisi oluşturma (Moran'ın I için ters çevrilmiş):
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
Arsa oluşturma:
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")
}
UCLA'nın istatistiklerine ilişkin örneklerde yer alan PS web sitesinde, her iki test de aynı verilerde ve çok da faydalı olmayan aynı hipotezde kullanılmıştır (çapraz başvuru , Mantel testi , Moran's I ).
IM'ye cevap yazdınız mı:
... [Mantel] sessiz kargaların diğer sessiz kargaların yakınında olup olmadığını test ederken, gürültülü kargaların gürültülü komşuları var.
Ben böyle bir hipotezin Mantel testi ile test edilemeyeceğini düşünüyorum . Her iki alanda da geçerli olan hipotez. Ancak, gürültülü olmayan kargalardan oluşan bir kümenin, gürültülü olmayan kargalardan oluşan ikinci kümenin varlığı hakkında bilgi sahibi olamayacağını varsayarsanız - Mantels testi yine işe yaramaz. Bu tür bir ayrım, doğada çok muhtemel olmalıdır (özellikle daha büyük ölçekte veri toplama yaparken).