2014-09-02 215 views
1

我一直在做一些有关不同采样点物种丰度数据集的调整。我正在素食中使用metaMDS来做到这一点。有了这个功能,你可以(1)直接输入社区数据(网站的行数和种类的数量),并指定你想要使用的距离类型(即jaccard,brass curtis,euclidean等)和函数调用vegdist做到这一点。另一方面,你可以(2)给metaMDS一个你已经创建的距离矩阵,可能使用vegdist(与metaMDS函数分开)。我感到困惑的是,如果我做第一个策略,我会得到一个答案,当我做第二个时(然后把这个距离矩阵放到metaMDS函数中),我会得到一个完全不同的答案(非常不同的应力值,不同的排序坐标)。而当我要求在第一个策略中创建的距离矩阵时,距离是非常不同的,那么我只从vegdist函数中得到。我读通过,研究别的东西,当metaMDS调用vegdist函数时,它正在多维空间中寻找距离,而仅仅使用vegdist是在一个维度中。基本上我问的是,metaMDS如何调用和计算与vegdist的距离(它是否在多维空间中执行它)?这与仅仅使用vegdist本身有什么不同?希望能够理解这些差异,我可以辨别出哪种数据集是最好和最合适的方法。R metaMDS排序距离

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)

global multimonimensional Scaling using monoMDS

数据:江淮 距离:捷卡

尺寸:2 压力:0.169781 压力型,弱关系 无融合解决方案 - 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,距离= “的Jaccard” 中,k = 2)

全球多维尺度使用monoMDS

数据:威斯康辛(SQRT(mrja)) 距离:的Jaccard

尺寸:2个 胁迫: 0。2367037 压力型,弱关系 无融合解决方案 - 20次尝试 缩放后最好的解决办法:定心,PC旋转,halfchange缩放 种:基于“威斯康星州(的sqrt(mrja))”扩大了比分

+0

你怎么知道这些融合到一个很好的解决方案?您所展示的只是NMDS的两个不同运行会聚到两个不同的解决方案。 – 2014-09-02 18:30:18

回答

1

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

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

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

它告诉你,数据首先平方根转换,然后威斯康星标准化。你有没有看到这样的事情?您可以通过在metaMDS()调用中设置参数autotransform = FALSE来关闭这些功能。您可以先向我们提供这些信息。

+0

看起来您正在查看'monoMDS'结果的内部结构。这些没有记录,你应该明白你的看法。 'ordjac2 $ dist'包含排序空间中各点之间的距离;原始的不同点在'ordjac2 $ diss'中。这些都不是原来的顺序,但它们的索引是'ordjac2 $ iidx'和'ordjac2 $ jidx'。如果您按这些顺序排列,则会得到输入差异。 – 2014-09-03 14:17:53

+0

我刚刚添加了这两个运行的调用,我想我现在明白了。我最初对ordjac $ dist感到困惑的第一件事,就是我认为它给了Jaccards指数而不是指定的距离。第二更重要的是,我现在明白为什么我会得到不同的结果。我不知道它是先改变距离矩阵。这正是我需要知道的。非常感谢你。 – 2014-09-03 20:23:50