3

我使用了betadisper()vegan 包中的函数来生成多元分散体并将这些数据绘制在 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]

基于之前的研究,我们使用无监督的随机森林来确定我们原始特征测量中的相似性:

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

然后使用邻近矩阵生成索引:

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

使用 vegan 包在结果索引上运行置换 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")

这描绘了这种美丽:

性别多元分散体

如何将质心标记为男性和女性?我还想为 Variant 类别运行此图,但它有五个因素而不是两个因素,这确实值得标记。

我见过这种boxplot()变体,但我喜欢 PCoA 也显示集群。

4

2 回答 2

3

您可以像这样向质心添加标签:

ordilabel(scores(Sex, "centroids"))

Sex你的结果在哪里betadisper。如果您不想使用质心的原始名称,可以使用以下命令更改名称:

ordilabel(scores(Sex, "centroids"), labels=c("A","B"))
于 2015-11-13T08:24:08.370 回答
1

您可以使用识别功能:

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

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

scores(sex, 1:2, display = "centroids")
于 2015-11-12T15:14:12.647 回答