| 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 Bray–Curtis 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))