2014-09-02 144 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