我使用了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 也显示集群。