[R-sig-eco] some MDS and R problems

Gavin Simpson gavin.simpson at ucl.ac.uk
Tue Jun 15 14:15:31 CEST 2010


Hi Arnaldo,

You ask several disjointed question that I don't really follow (esp your
last point about unique), but in response to:

> When I delete a sample I do not loose some weight?

No, nMDS only cares about trying to position points in a k dimensional
space such that the distance between points in this k dimensional space
best represents the rank ordering of the original dissimilarities. If
two samples have 0 dissimilarity, they should occupy the same location
on the plot (in the k dimensional space); one does not influence the
other. Hence simply deleting one of the pair of samples that have zero
distance to one another is appropriate.

As for the code I wrote in the email you cite:

minDij <- min(Dij[Dij > 0]) / 2
Dij[Dij <= 0] <- minDij

We assume Dij is the object containing your distance matrix. In your
example code, it would be

Dij <- as.matrix(dissim1)

for example.

The first line of my code calculates half the smallest observed
dissimilarity. If we break it down, the code in that first line does the
following [there was a missing `]` in the version you quote and probably
in my original]:

Dij[Dij > 0] subsets Dij so that we only work with the dissimilarities
that are positive. This way of indexing the matrix Dij results in a
vector of positive dissimilarities. We then apply the min( ) function to
this vector of positive dissimilarities to return the smallest positive
dissimilarity observed. We then halve this minimum value and store it in
the object minDij.

The second line of my code uses this dissimilarity value (minDij) to
replace the observed dissimilarities in Dij that are less than or equal
to 0.

Hope this is of use. If you still can't get this to work, post back and
let us know.

All the best,

G

On Tue, 2010-06-15 at 08:34 -0300, Arnaldo Russo wrote:
> Hi all,
> 
> I'm executing some multivariate exploratory annalysis, with vegan and MASS
> packages.
> 
> Some problems are not solved for me at this moment. I have read all past
> discussions over MDS problems.
> 
> In my studies occurs a situation that some samples are equal each other, and
> this results in zero dissimilarities.
> 
> I tryed with no success, use the stepacross function. So, in this case I
> changed one of these zero dissimilarities values for a minimum (1e-5). Some
> of these modifications are different than "stepacross" or same isoMDS(x.dist
> + 1e-5)  (proposed by Jari oksanen to 'lie' to isoMDS? When I delete a
> sample I do not loose some weight?
> 
> Changing one of those zero dissimilarities and using zerodist = "add" option
> of metaMDS, it passed the current error (zero or negative distance between
> objects).
> 
> Someone could explain the function posted by Gavin Simpson (Jan 12, 2010;
> 05:45pm Re: Non-metric multidimensional scaling (NMDS) help). I didn't get
> some result.
> 
> If there is a good reason, and you want to include all samples, then
> >
> you'll need to come up with a means for handling them. metaMDSdist allow
> >
> you to add a small value to the zero dissimilarities. The details are in
> > the code, but effectively all zero distances are replaced by half the
> > smallest non zero distance. You could do a similar replacement yourself
> > if you feel this is warranted and/or justified.
> >
> > minDij <- min(Dij[Dij > 0) / 2
> > Dij[Dij <= 0] <- minDij
> >
> > Will do this replacement if Dij is your matrix (replace Dij with
> > whatever the name of your matrix is). Then supply the new matrix to
> > metaMDS. "
> >
> 
> 
> When I use unique function as #x.dist <- dist(unique(X))
> this cutted some of my samples that I do not know. I can't see my variables
> in the plot. Some help?
> 
> Cheers, Arnaldo.
> 
> 
> epi<- read.table("epi.txt", h=TRUE,row.names=1)
> 
> library('vegan')
> library('MASS')
> 
> epi.<- as.matrix(epi)
> 
> dissim1<- vegdist(epi., method="jaccard", binary=TRUE)
> dissim1.mds<-metaMDS(dissim1,k=2)
> 
> plot(dissim1.mds,type="n")
> text(dissim1.mds, labels=as.character(row.names(epi)))
> 
> #epi
> sample    sp1    sp2    sp3    sp4    sp5    sp6    sp7    sp8    sp9
> sp10    sp11    sp12    sp13    sp14    sp15    sp16    sp17    sp18    sp19
> 1E    1    0    1    0    0    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 2E    0    0    1    0    1    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 3E    1    0    1    0    0    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 4E    1    0    1    0    1    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 5E    1    0    0    0    0    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 6E    1    0    0    0    0    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 7M    1    0    1    0    0    0    1    0    0    0    0    0    0    0
> 0    0    0    0    0
> 8E    1    0    0    0    0    0    1    0    0    0    0    0    0    0
> 0    0    0    0    0
> 11E    1    0    0    0    1    0    1    0    0    0    0    0    0    0
> 0    0    0    0    0
> 12E    0    0    0    0    0    1    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 13E    0    0    0    0    0    0    1    0    0    0    1    1    0    0
> 0    0    0    0    0
> 14E    0    0    1    0    0    0    0    0    0    0    0    1    0    0
> 0    0    0    0    0
> 15E    1    0    0    0    0    0    1    0    0    0    0    0    1    0
> 0    0    0    0    0
> 17E    0    0    0    0    1    0    1    0    1    0    0    0    0    0
> 0    0    0    0    0
> 18E    0    0    0    0    0    0    1    0    0    0    0    0    0    0
> 0    0    0    0    0
> 20E    1    0    0    0    1    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 21E    1    0    0    0    0    0    0    0    0    0    0    0    0    1
> 0    0    0    0    0
> 22E    1    0    0    0    1    0    0    0    1    0    0    0    0    0
> 0    0    0    0    0
> 23E    1    0    1    1    1    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 27E    1    0    0    1    1    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 28E    1    0    0    0    1    0    1    1    0    0    1    0    0    0
> 0    0    0    0    0
> 30E    1    1    0    0    1    0    0    0    0    0    0    0    0    0
> 0    0    0    0    0
> 31E    0    0    0    0    0    0    0    0    0    0    0    0    0    0
> 1    0    0    0    0
> 32E    1    0    0    0    0    0    0    0    1    0    0    0    0    0
> 0    0    0    0    0
> 9E    0    0    0    0    0    1    1    1    1    1    0    0    0    0
> 0    0    1    0    0
> 10E    0    0    1    0    0    1    1    0    1    1    1    0    0    0
> 0    1    0    1    1
> 
> ------
> Arnaldo D`Amaral Pereira Granja Russo
> Instituto Ambiental Boto Flipper
> www.institutobotoflipper.com.br
> 
> 	[[alternative HTML version deleted]]
> 
> _______________________________________________
> R-sig-ecology mailing list
> R-sig-ecology at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-ecology

-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-sig-ecology mailing list