基于 R 中的 betadisper() 多元分散标记 PCoA 的质心
Labeling the centroids of a PCoA based on betadisper() multivariate dispersions in R
我使用了 vegan 包中的函数 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]
根据之前的研究,我们使用无监督随机森林来确定原始特征测量中的相似性:
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")
就是图这个美女:
如何将质心标记为男性和女性?我也想 运行 变体类别的这个图,但它有五个因素而不是两个,这确实值得标记。
我看过这个的 boxplot()
变体,但我喜欢 PCoA 显示聚类的方式。
您可以使用识别功能:
A <- plot(sex)
identify(A, "centroids")
或查看分数(这不会向绘图添加标签,但会显示质心位置)
scores(sex, 1:2, display = "centroids")
您可以像这样向质心添加标签:
ordilabel(scores(Sex, "centroids"))
其中 Sex
是您的 betadisper
结果。如果您不想使用质心的原始名称,您可以更改名称:
ordilabel(scores(Sex, "centroids"), labels=c("A","B"))
我使用了 vegan 包中的函数 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]
根据之前的研究,我们使用无监督随机森林来确定原始特征测量中的相似性:
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")
就是图这个美女:
如何将质心标记为男性和女性?我也想 运行 变体类别的这个图,但它有五个因素而不是两个,这确实值得标记。
我看过这个的 boxplot()
变体,但我喜欢 PCoA 显示聚类的方式。
您可以使用识别功能:
A <- plot(sex)
identify(A, "centroids")
或查看分数(这不会向绘图添加标签,但会显示质心位置)
scores(sex, 1:2, display = "centroids")
您可以像这样向质心添加标签:
ordilabel(scores(Sex, "centroids"))
其中 Sex
是您的 betadisper
结果。如果您不想使用质心的原始名称,您可以更改名称:
ordilabel(scores(Sex, "centroids"), labels=c("A","B"))