我有一个由132个观测值和10个变量组成的数据集。 这些变量都是分类的。我正在尝试查看我的观察结果如何集群以及基于方差百分比的不同之处。即我想找出是否a)有任何变量可以帮助将某些观察点彼此分开,以及b)如果是,请问变量解释的百分比是多少?
建议我对我的数据运行PCoA(原理坐标分析)。我用素食主义者和猿猴包跑了它。这是我将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之后进行了此操作,但是对此没有进一步的解释。
答案 0 :(得分:0)
Gower索引不是非欧几里得,并且您期望的实际轴数可能比欧几里得排序(PCoA)中的变量数更多。但是,您说过变量是分类的。我认为在 R 术语中它们是因素。如果是这样,您应该不使用vegan::vegdist()
,它仅接受数字数据。此外,如果将变量定义为因子,则vegan::vegdist()
拒绝计算差异并给出错误。如果您设法使用vegdist()
,则没有正确定义变量作为因子。如果您确实有因子变量,则应使用 vegan 以外的其他软件包来解决Gower差异(有很多替代方法)。
ape::pcoa()
返回您在元素values
中询问的信息。解释的差异比例在其元素values$Relative_eig
中。总“方差”在元素trace
中返回。所有这些都记录在我读过的?pcoa
中。