R metaMDS排序距离

时间:2014-09-02 18:08:59

标签: r vegan

我一直在对数据集做一些观察,我在不同的采样点拥有丰富的物种。我在素食主义者中使用metaMDS来做到这一点。使用此功能,您可以(1)直接输入社区数据(行中的站点和列中的物种)并指定您希望它使用的距离类型(即jaccard,brays curtis,euclidean等)和函数调用vegdist这样做。另一方面,你可以(2)给metaMDS一个你已经创建的距离矩阵,可能使用vegdist(与metaMDS函数分开)。我感到困惑的是,如果我做第一个策略,我得到一个答案,当我做第二个(然后将该距离矩阵放入metaMDS函数)时,我得到了一个完全不同的答案(非常不同的压力值,不同的排序坐标) )。当我要求在第一个策略中创建的距离矩阵时,距离与vegdist函数得到的距离大不相同。我仔细阅读,研究其他东西,当metaMDS调用vegdist函数时,它在多维空间中找到距离,而仅使用vegdist是在一个维度。基本上我要问的是metaMDS如何调用和计算与vegdist的距离(它是在多维空间中进行的吗?),这与仅仅使用vegdist本身有什么不同?希望在理解这些差异时,我可以看出哪个是我的数据集的最佳和最合适的方法。

mrja<-read.table("example.txt")
jac<-vegdist(mrja,method="jaccard")
head(jac)

[1] 0.7910448 0.8721461 0.7157360 0.9075908 0.9335038 0.9104478 ###前六个距离

ordjac1<-metaMDS(jac,k=2)
ordjac1$stress

[1] 0.169781     ordjac1

呼叫: metaMDS(comm = jac,k = 2)

使用monoMDS的全局多维缩放

数据:jac 距离:jaccard

尺寸:2 压力:0.169781 压力类型1,弱关系 没有收敛的解决方案 - 20次尝试后的最佳解决方案 缩放:居中,PC旋转 物种:缺少分数

ordjac2<-metaMDS(mrja,k=2,distance="jaccard")
ordjac2$stress

[1] 0.2367037

head(ordjac2$dist)

[1] 5.259303e-06 2.812693e-05 1.879357e-02 1.216611e-01 3.913638e-02 [6] 7.444730e-02 ###前六个距离

ordjac2

呼叫: metaMDS(comm = mrja,distance =&#34; jaccard&#34;,k = 2)

使用monoMDS的全局多维缩放

数据:威斯康星州(sqrt(mrja)) 距离:jaccard

尺寸:2 压力:0.2367037 压力类型1,弱关系 没有收敛的解决方案 - 20次尝试后的最佳解决方案 缩放:居中,PC旋转,半转换缩放 物种:基于'wisconsin(sqrt(mrja))

的扩展分数

1 个答案:

答案 0 :(得分:2)

没有足够的信息,但也许metaMDS执行了一些转换和标准化。这可以在跟踪信息和打印输出中看到。例如,我们有

> metaMDS(varespec)
Square root transformation
Wisconsin double standardization
...
global Multidimensional Scaling using monoMDS

Data:     wisconsin(sqrt(varespec)) 
Distance: bray 

告诉你数据首先是squareroot转换然后Wisconsin标准化。你看到这样的事吗?您可以通过在autotransform = FALSE调用中设置参数metaMDS()来关闭这些功能。您可以首先向我们提供此信息。