У меня проблемы с использованием набора данных ("бабочка").Проблема:
Проблема 4: Установите пакет «ade4», за которым следуют данные (бабочка).Наш вопрос: «Коррелируется ли генетическое сходство с географическими расстояниями между колониями бабочек?» Заполните матрицу генетического расстояния, используя меру расстояния, которую мы назвали d1.Выполните рандомизацию Mantel и интерпретируйте результаты.Повторите тест, используя меру расстояния d2.Это имело значение?Покажите свой код цикла for как часть вашего ответа, а также графики рассеяния и графики рандомизации из тестов рандомизации Мантеля.
Вот функция, используемая для вычисления различий.Я не понимаю, как
dissimilarity <- function(p1, p2){
d1 <- sum( abs(p1 - p2) / 2 )
d2_num <- sum(p1*p2)
d2_denom <- sqrt( sum(p1^2) * sum(p2^2) )
d2 <- 1 - d2_num / d2_denom
return(list(d1=d1, d2=d2))
}
Вот код, который я использовал для настройки генетической матрицы расстояний.
library(ade4)
data("butterfly")
butterflydat<-data.frame(butterfly)
plot(butterfly$contour[,1:2], pch=16, cex=.4)
polygon(butterfly$contour[,1:2], lty=2)
points(butterfly$xy, pch=7)
nrow(butterfly$xy)
text(butterfly$xy, labels=1:16, pos=2, cex=.8)
apply(butterfly$genet,1,sum)
(Ddist <- dist(butterfly$xy))
Я могу рассчитать разницу между двумя географическими расстояниями (Например:
dissimilarity(butterfly$genet[1,],butterfly$genet[2,])$d2
, но я не понимаю, как применить цикл for для заполнения матрицы для всех географических расстояний.Я также не понимаю критерий рандомизации Мантеля.Вопрос подразумевает, что мы выполняем тест рантелизации Мантеля для каждой матрицы, но разве этот тест не сравнивает корреляцию между двумя матрицами (т.е. d1 и d2?)
Любая помощь будет принята с благодарностью, я новичокстатистике и р.