我一直在对不同采样点的丰富物种数据集进行一些排序。我在用metaMDS()
素食主义者可以做到这一点。通过此功能,您可以:
- 直接输入群落数据(行中的站点和列中的物种)并指定您希望使用的距离类型(即 jaccard、brays curtis、euclidean 等)和函数调用
vegdist()
去做这个。
另一方面你可以
- 给
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 ###first six distances
ordjac1<-metaMDS(jac,k=2)
ordjac1$stress
[1] 0.169781
ordjac1
Call:
metaMDS(comm = jac, k = 2)
global Multidimensional Scaling using monoMDS
Data: jac
Distance: jaccard
Dimensions: 2
Stress: 0.169781
Stress type 1, weak ties
No convergent solutions - best solution after 20 tries
Scaling: centring, PC rotation
Species: scores missing
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 ###first six distances
ordjac2
Call:
metaMDS(comm = mrja, distance = "jaccard", k = 2)
global Multidimensional Scaling using monoMDS
Data: wisconsin(sqrt(mrja))
Distance: jaccard
Dimensions: 2
Stress: 0.2367037
Stress type 1, weak ties
No convergent solutions - best solution after 20 tries
Scaling: centring, PC rotation, halfchange scaling
Species: expanded scores based on ‘wisconsin(sqrt(mrja))’
没有足够的信息,但也许metaMDS
进行了一些改造和标准化。这可以在跟踪信息和打印输出中看到。例如,我们有
> metaMDS(varespec)
Square root transformation
Wisconsin double standardization
...
global Multidimensional Scaling using monoMDS
Data: wisconsin(sqrt(varespec))
Distance: bray
它告诉您数据首先经过平方根转换,然后威斯康星州标准化。你看到这样的东西吗?您可以通过设置参数来关闭这些autotransform = FALSE
in the metaMDS()
称呼。您可以首先向我们提供此信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)