2015-11-12 9 views
1

Я использовал функцию betadisper() в пакете vegan для создания многомерных дисперсий и для построения этих данных в PCoA. В этом примере я буду смотреть на разницу между полами в сингулярном виде.Маркировка центроидов PCoA на основе мультивариантных дисперсий betadisper() в R

Загрузить исходные данные. Для наших целей это может быть законным здесь. Данные, которые я использую, не являются особенными. Это функция измерения из биоакустического набора данных. Я иду через свой процесс.

my_original_data = read.csv("mydata.csv", as.is = T, check.names = F) 
#Just extract the numeric/quantitative data. 
myData=my_original_data[, 13:107] 

Основываясь на предыдущих исследованиях, мы использовали неконтролируемый randomForest для определения сходства в наших оригинальных измерениях.

require(randomForest) 
full_urf = randomForest(myData, proximity=T, scale=TRUE, ntree=4999,importance = TRUE) 

Затем был создан индекс с использованием матрицы близости.

urf_dist_full = as.dist(1-full_urf$proximity) 

Перестановочный MANOVA запускался по результирующему индексу с использованием пакета vegan. Использование pMANOVA было хорошо исследовано и является правильным тестом для моих целей.

mod=adonis(formula = urf_dist_full ~ Sex * Age * Variant, data = my_original_data, permutations = 999, method = "euclidean") 

У my_original_data были качественные факторы, пол, возраст и вариант. Я мог бы их добыть, но казалось, что чище держать их в исходном наборе данных.

После нескольких испытаний однородности я хочу построить многомерные дисперсии. Для этого я использую функцию betadisper:

Sex=betadisper(urf_dist_full,my_original_data$Sex) 
plot(Sex, main="Sex Multivariate Dispersions") 

Это участки этой красоты:

Sex Multivariate Dispersions

Есть в любом случае для обозначения центроиды, хотя? Как мужчина и женщина? Я также хочу запустить этот сюжет для категории Variant, но у него есть пять факторов, а не два, что действительно гарантирует маркировку.

Я видел вариант boxplot(), но мне нравится, как PCoA также показывает кластеризацию. Есть предположения?

Спасибо! -etg

ответ

3

Вы можете добавить этикетки к центроидам следующим образом: ordilabel(scores(Sex, "centroids")) , где Sex - ваш результат betadisper. Если вы не хотите использовать оригинальные названия ваших центроидов, вы можете изменить имена с помощью ordilabel(scores(Sex, "centroids"), labels=c("A","B"))

+0

Спасибо. Это позволило значительно более четкую маркировку и больше возможностей форматирования. – etgriffiths

1

Вы можете использовать функцию идентификации-:

A <- plot(sex) 
identify(A, "centroids") 

Или посмотрите на баллы (это не добавлять метки к сюжету, но показывает вам центроида положение)

scores(sex, 1:2, display = "centroids") 
+0

А, я думаю, я был немного неясен. Я имел в виду ярлык центроидов «Муж» и «Женщина». Теперь я изменил это в тексте. Спасибо за ваш вклад! Я собираюсь исследовать идентификацию. – etgriffiths

+0

Ах! Идентификация полностью работает! Большое спасибо! – etgriffiths