首页 > 解决方案 > PCoA 函数 pcoa 提取向量;解释的方差百分比

问题描述

我有一个由 132 个观察值和 10 个变量组成的数据集。这些变量都是分类的。我试图根据方差百分比查看我的观察结果如何聚类以及它们有何不同。即我想知道a)是否有任何变量有助于将某些观察点彼此分开,b)如果是,它解释的方差百分比是多少?

有人建议我对我的数据运行 PCoA(原理坐标分析)。我使用 vegan 和 ape 包运行它。这是我将 csv 文件加载到 r 后的代码,我称之为数据

#data.dis<-vegdist(data,method="gower",na.rm=TRUE)
#data.pcoa<-pcoa(data.dis)

然后我被告知要从 pcoa 数据中提取向量,所以

#data.pcoa$vectors

然后它返回了 132 行但 20 列的值(例如,从轴 1 到轴 20)

当我只有 10 个变量时,我对为什么有 20 列值感到困惑。我的印象是我只会得到 10 列。如果有任何善良的灵魂可以帮助解释a)向量实际代表什么,b)我如何获得轴1和轴2解释的方差百分比?

我遇到的另一个问题是我并不真正理解从中提取特征值的目的,data.pcoa因为我看到一些网站在他们的距离矩阵上运行 pcoa 后这样做,但没有进一步的解释。

标签: rvarianceveganape

解决方案


高尔指数是非欧几里得指数,您可以期望比欧几里得排序 (PCoA) 中的变量数量更多的实轴。但是,您说您的变量是分类的。我假设在R术语中它们是因素。如果是这样,则不应使用vegan::vegdist()接受数字数据的 which。此外,如果将变量定义为因子,则vegan::vegdist()拒绝计算差异并给出错误。如果您设法使用vegdist(),则您没有正确地将变量定义为因素。如果你真的有因子变量,你应该使用除vegan之外的其他包来实现 Gower 的不同(有很多替代方案)。

对于非欧几里得差异,“方差”的百分比有点棘手,它也给出了一些与虚维度相对应的负特征值。在这种情况下,所有正特征值(实轴)的总和高于数据的总“方差”。ape::pcoa()返回您在元素中询问的信息values。解释的方差比例在其元素中values$Relative_eig。总“方差”在 element 中返回trace。所有这些都记录在?pcoa我阅读它的地方。


推荐阅读