根据R

时间:2015-11-12 08:37:35

标签: r pca random-forest vegan manova

我在纯素包中使用了函数betadisper()来生成多变量分散并将这些数据绘制在PCoA中。在这个例子中,我将研究单一物种中性别之间的差异。

加载原始数据。为了我们的目的,这在任何地方都是合法的。我使用的数据并不特殊。它是来自生物声学数据集的特征测量。我正在走过我的过程。

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。 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

2 个答案:

答案 0 :(得分:3)

你可以像这样向质心添加标签: ordilabel(scores(Sex, "centroids")) 其中Sex是您的betadisper结果。如果您不想使用质心的原始名称,可以使用更改名称 ordilabel(scores(Sex, "centroids"), labels=c("A","B"))

答案 1 :(得分:1)

您可以使用识别功能:

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

或者查看分数(这不会在情节中添加标签,但会显示质心位置)

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