Learn R Programming

labdsv (version 1.8-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:

points

the coordinates of samples along axes

stress

the "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/labs/lab9/lab9.html

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 the ‘surf’ method 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
# NOT RUN {
    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