[R] isoMDS - high stress value and strange configuration

Jari Oksanen jarioksa at sun3.oulu.fi
Thu Feb 8 08:51:43 CET 2007


> I have a specific question about isoMDS. Imagine the following (fake) 
> distance table:
> 
>         hamburg bremen berlin munich cologne
> hamburg       0    911    982    677     424
> bremen      911      0    293    547     513
> berlin      982    293      0    785     875
> munich      677    547    785      0     375
> cologne     424    513    875    375       0
> 
> Now if I try a non-metric multidimensional scaling on these 
> dissimilarities using isoMDS (or metaMDS), the stress value is 6.34. 
> Nevertheless, other programs (e.g. the Minissa routine implemented in 
> UCINet) yield a stress value of 0.00, and the configuration looks 
> completely different. 

This indeed seems to be a case where NMDS is trapped in its starting
configuration. Metric scaling (cmdscale) produces a cute "horseshoe",
but the best NMDS solutions looks completely different. Any small change
from the initial solution leads into a worse configuration, and you need
a bigger change in the beginning. Using a random configuration seems to
help:

> isoMDS(dis, initMDS(dis))
initial  value 36.383132 
iter   5 value 28.671652
iter  10 value 16.711327
iter  15 value 6.392572
iter  20 value 3.007208
final  value 0.000000 
converged
$points
              [,1]      [,2]
hamburg  29.428121 -36.07858
bremen    2.740499  32.38745
berlin    1.984215  35.35429
munich  -16.910941 -14.13750
cologne -13.844187 -15.24468

$stress
[1] 1.56159e-14

In this case I generated the random configuration using function initMDS
of vegan, but you can do that quite well by any other way.

Another point (which does not matter here so much) is that isoMDS
multiplies stress by 100, so that your stress of 6 would corresponde
0.06 in some other software (assuming they use the same stress).

cheers, jari oksanen
-- 
Jari Oksanen <jarioksa at sun3.oulu.fi>



More information about the R-help mailing list