3

私は、さまざまなサンプリングポイントで豊富な種を持っているデータセットでいくつかの叙階を行ってきました。私はmetaMDS()これを行うためにビーガンで使用しています。この機能を使用すると、次のいずれかを実行できます。

  1. 群集データ (行にサイト、列に種) を直接入力し、使用する距離のタイプ (つまり、jaccard、brays curtis、euclidean など) を指定し、vegdist()これを行う関数呼び出しを指定します。

一方、あなたができる

  1. (関数とは別にmetaMDS)潜在的に使用して、すでに作成した距離行列を与えます。vegdist()metaMDS()

私が混乱しているのは、最初の戦略を実行すると1つの答えが得られ、2番目の戦略を実行すると(そしてその距離行列をmetaMDS()関数に入れると)まったく異なる答えが得られることです(非常に異なる応力値、異なる座標座標) . そして、最初の戦略で作成された距離行列を呼び出すと、距離は関数から得られるものとは大幅に異なりvegdist()ます。metaMDS()私は、関数を呼び出すと、vegdist()多次元空間で距離を見つけているのに、使用するのは1次元であるということを、他の何かを調査して、ついでに読みました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))’
4

1 に答える 1