rveganvegdist

R metaMDS ordination distances


I have been doing some ordinations on a data set that I have of abundances of species at different sampling points. I am using metaMDS() in vegan to do this. With this function you can either:

  1. enter directly the community data (sites in rows and species in columns) and specify what type of distance you want it to use (i.e. jaccard, brays curtis, euclidean, etc.) and the function calls vegdist() to do this.

On the other hand you can

  1. give the metaMDS a distance matrix you have already created, potentially using vegdist() (separate from the metaMDS() function).

Where I am confused is that if I do the first strategy I get one answer, and when I do the second (and then putting that distance matrix into the metaMDS() function) I get a totally different answer (very different stress values, different ordination coordinates). And when I call for the distance matrix created in the first strategy the distances are drastically different then what I get from just vegdist() function. I read in passing, researching something else, that when metaMDS() calls the vegdist() function it is finding the distances in multi-dimensional space, while just using vegdist() is in a single dimension.

Essentially I am asking is how does metaMDS() call and compute the distances with vegdist() (is it doing it in multi-dimensional space?) and how is that different than simply using vegdist() itself? Hopefully in understanding these differences I can discern which is the best and most appropriate method for my dataset.

    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))’

Solution

  • There is not sufficient information, but perhaps metaMDS performed some transformation and standardization. This is seen in tracing information and in printed output. For instance, we have

    > metaMDS(varespec)
    Square root transformation
    Wisconsin double standardization
    ...
    global Multidimensional Scaling using monoMDS
    
    Data:     wisconsin(sqrt(varespec)) 
    Distance: bray 
    

    which tells you that data were first squareroot transformed and then Wisconsin standardized. Do you see something like this? You can turn off these by setting argument autotransform = FALSE in the metaMDS() call. You can start by providing us this information.