initMDS {vegan} | R Documentation |
Function initMDS
gives a random start for multidimensional
scaling, and postMDS
performs some post-standardizations for
multidimensional scaling, in order to make the configurations easier
to interpret
initMDS(x, k=2) postMDS(X, dist, pc=TRUE, center=TRUE, halfchange=TRUE, threshold=0.8, nthreshold=10, plot=FALSE)
x |
Dissimilarity matrix for isoMDS. |
k |
Number of dimensions. |
X |
Configuration from multidimensional scaling. |
dist |
Dissimilarity matrix used in multidimensional scaling. |
pc |
Rotate to principal components. |
center |
Centre the configuration. |
halfchange |
Scale axes to half-change units. |
threshold |
Largest dissimilarity used in half-change scaling. |
nthreshold |
Minimum number of points in half-change scaling. |
plot |
Show half-change scaling plot. |
Non-metric Multidimensional Scaling (NMDS) is commonly regarded as the
most robust unconstrained ordination method in community ecology (Minchin
1987). Functions initMDS
and postMDS
together with some
other functions are intended to
help run NMDS in isoMDS
like recommended by
Minchin (1987) NMDS is not a
strong choice unless used correctly:
rankindex
may help in choosing an adequate index.
Often a good a priori choice is to use BrayCurtis index,
perhaps with wisconsin
double standardization. Some
recommended indices are available in function
vegdist
.
cmdscale
), because this may be close to
a local optimum which will trap the iteration. Function
initMDS
provides such random starts.
postMDS
provides a simple solution
for fixing the scaling of NMDS. Function procrustes
provides Procrustes rotation for more formal inspection.
Function postMDS
provides the following ways of ``fixing'' the
indeterminacy of scaling and orientation of axes in NMDS:
Centring moves the origin to the
average of each axis. Principal components rotate the configuration
so that the variance of points is maximized on first
dimensions. Half-change scaling scales the configuration so that one
unit means halving of community similarity from replicate similarity.
Half-change scaling is
based on closer dissimilarities where the relation between ordination
distance and community dissimilarity is rather linear; the limit is
controlled by parameter threshold
. If there are enough points
below this threshold (controlled by the the parameter
nthreshold
), dissimilarities are regressed on distances.
The intercept of this regression is taken as the replicate
dissimilarity, and half-change is the distance where similarity
halves according to linear regression. Obviously the method is
applicable only for dissimilarity indices scaled to 0 ... 1,
such as Kulczynski, Bray-Curtis and Canberra indices.
Function initMDS
returns a random configuration which is
intended to be used within isoMDS
only. Function
postMDS
returns the result of isoMDS
with
updated configuration.
Jari Oksanen
Minchin, P.R. (1987) An evaluation of relative robustness of techniques for ecological ordinations. Vegetatio 71, 145-156.
## The recommended way of running NMDS (Minchin 1987) ## data(varespec) data(varechem) library(MASS) ## isoMDS library(mva) ## cmdscale: default start to isoMDS # Select a good dissimilarity index rankindex(scale(varechem),varespec) rankindex(scale(varechem),wisconsin(varespec)) vare.dist <- vegdist(wisconsin(varespec), "bray") # Get the baseline solution: start with cmdscale mds.null <- isoMDS(vare.dist, tol=1e-7) ## See if you can get any better. repeat{ mds.1<- isoMDS(vare.dist, initMDS(vare.dist), maxit=200, trace=FALSE, tol=1e-7) if(mds.1$stress < mds.null$stress) break } # Scale solutions ("fix translation, rotation and scale") mds.null <- postMDS(mds.null, vare.dist) mds.1 <- postMDS(mds.1, vare.dist) # Compare solutions plot(procrustes(mds.1, mds.null))