Goodness of Fit and Shepard Plot for Nonmetric Multidimensional Scaling
goodness.metaMDS.Rd
Function goodness.metaMDS
find goodness of fit measure for
points in nonmetric multidimensional scaling, and function
stressplot
makes a Shepard
diagram.
Usage
# S3 method for class 'metaMDS'
goodness(object, dis, ...)
# Default S3 method
stressplot(object, dis, pch, p.col = "blue", l.col = "red",
lwd = 2, ...)
Arguments
- object
- dis
Dissimilarities. This should not be used with
metaMDS
ormonoMDS
, but must be used withisoMDS
.- pch
Plotting character for points. Default is dependent on the number of points.
- p.col, l.col
Point and line colours.
- lwd
Line width. For
monoMDS
the default islwd = 1
if more than two lines are drawn, andlwd = 2
otherwise.- ...
Other parameters to functions, e.g. graphical parameters.
Details
Function goodness.metaMDS
finds a goodness of fit statistic
for observations (points). This is defined so that sum of squared
values is equal to squared stress. Large values indicate poor fit.
The absolute values of the goodness statistic depend on the
definition of the stress: isoMDS
expresses
stress in percents, and therefore its goodness values are 100 times
higher than those of monoMDS
which expresses the
stress as a proportion.
Function stressplot
draws a Shepard diagram which is a plot
of ordination distances and monotone or linear fit line against
original dissimilarities. In addition, it displays two
correlation-like statistics on the goodness of fit in the graph.
The nonmetric fit is based on stress \(S\) and defined as \(R^2
= 1-S^2\). The “linear fit” is the squared
correlation between fitted values and ordination distances. For
monoMDS
, the “linear fit” and \(R^2\)
from “stress type 2” are equal.
Both functions can be used with metaMDS
,
monoMDS
and isoMDS
. The original
dissimilarities should not be given for monoMDS
or
metaMDS
results (the latter tries to reconstruct the
dissimilarities using metaMDSredist
if
isoMDS
was used as its engine). With
isoMDS
the dissimilarities must be given. In
either case, the functions inspect that dissimilarities are
consistent with current ordination, and refuse to analyse
inconsistent dissimilarities. Function goodness.metaMDS
is
generic in vegan, but you must spell its name completely with
isoMDS
which has no class.
Value
Function goodness
returns a vector of values. Function
stressplot
returns invisibly an object with items for
original dissimilarities, ordination distances and fitted values.
See also
metaMDS
, monoMDS
,
isoMDS
, Shepard
. Similar
diagrams for eigenvector ordinations can be drawn with
stressplot.wcmdscale
, stressplot.cca
.
Examples
data(varespec)
mod <- metaMDS(varespec)
#> Square root transformation
#> Wisconsin double standardization
#> Run 0 stress 0.1843196
#> Run 1 stress 0.2410643
#> Run 2 stress 0.1948413
#> Run 3 stress 0.1825658
#> ... New best solution
#> ... Procrustes: rmse 0.0416189 max resid 0.1517616
#> Run 4 stress 0.2383056
#> Run 5 stress 0.2096851
#> Run 6 stress 0.2329653
#> Run 7 stress 0.1825658
#> ... New best solution
#> ... Procrustes: rmse 2.732084e-05 max resid 8.096006e-05
#> ... Similar to previous best
#> Run 8 stress 0.1825658
#> ... Procrustes: rmse 1.167373e-05 max resid 3.019892e-05
#> ... Similar to previous best
#> Run 9 stress 0.2092456
#> Run 10 stress 0.1976154
#> Run 11 stress 0.2331577
#> Run 12 stress 0.2330486
#> Run 13 stress 0.1948413
#> Run 14 stress 0.2356726
#> Run 15 stress 0.1955838
#> Run 16 stress 0.2339637
#> Run 17 stress 0.2088293
#> Run 18 stress 0.2138946
#> Run 19 stress 0.2136761
#> Run 20 stress 0.2352729
#> *** Best solution repeated 2 times
stressplot(mod)
gof <- goodness(mod)
gof
#> [1] 0.02984516 0.03513715 0.04189194 0.04598243 0.04003134 0.03441442
#> [7] 0.03294898 0.03050145 0.03060754 0.02994058 0.03526332 0.02621426
#> [13] 0.03830984 0.02980913 0.03369611 0.02225897 0.03561569 0.03505254
#> [19] 0.06577496 0.03268352 0.03503121 0.02956628 0.05168013 0.04601957
plot(mod, display = "sites", type = "n")
points(mod, display = "sites", cex = 2*gof/mean(gof))