Learn R Programming

labdsv (version 1.2-0)

nmds: Nonmetric Multidimensional Scaling

Description

This function is simply a wrapper for the isoMDS function in the MASS package by Venables and Ripley. The purpose is to establish a nmds class to simplify plotting and additional graphical analysis as well as a summary.

Usage

nmds(dis,k=2,y=cmdscale(d=dis,k=k),maxit=50)
bestnmds(dis,k=2,itr=20,maxit=100)

Arguments

dis
a dist object returned from dist() or a full symmetric dissimilarity or distance matrix
k
the desired number of dimensions for the result
y
a matrix of initial locations (objects as rows, coordinates as columns, as many columns as specified by k). If none is supplied, cmdscale is used to generate them
maxit
the maximum number of iterations in the isoMDS routine
itr
number of random starts to find best result

Value

  • an object of class nmds, with components:
  • pointsthe coordinates of samples along axes
  • stressthe "goodness-of-fit" computed as stress in percent

Details

The nmds function simply calls the isoMDS() function of the MASS library, but converts the result from a list to an object of class "nmds." The only purpose for the function is to allow plot, identify, surf, and other additional methods to be defined for the nmds class, to simplify the analysis of the result.

The bestnmds function runs itr number of random initial locations and returns the best result of the set.

References

Kruskal, J.B. (1964) Multidimensional scaling by optimizing goodness of fit to nonmetric hypothesis. Psychometrics 29:1-27.

Kruskal, J.B. (1964) Nonmetric multidimensional scaling: a numerical method. Psychometrics 29:115-129.

T.F. Cox and M.A.A. Cox. (1994) Multidimensional Scaling. Chapman and Hall.

http://ecology.msu.montana.edu:/labdsv/R

See Also

isoMDS for the original function

plot.nmds for the plot method, the plotid method to identify points with a mouse, the points method to identify points meeting a logical condition, the hilight method to color-code points according to a factor, the chullord method to add convex hulls for a factor, or the surf and jsurf methods to add surface contours for continuous variables.

initMDS for an alternative way to automate random starts

postMDS for a post-solution rescaling

metaMDS for a full treatment of variations

Examples

Run this code
data(bryceveg)
    data(brycesite)
    dis.man <- dist(bryceveg,method="manhattan")
    demo.nmds <- nmds(dis.man,k=4)
    plot(demo.nmds)
    points(demo.nmds,brycesite$elev>8000)
    plotid(demo.nmds,ids=row.names(brycesite))

Run the code above in your browser using DataLab