Dear useRs, last week I asked you about a problem related to isoMDS. It turned out that in my case isoMDS was trapped. Nonetheless, I still have some problems with other data sets. Therefore I would like to know if anyone here has experience with how well isoMDS performs in comparison to other non-metric MDS routines, like Minissa. I have the feeling that for large data sets with a high stress value (e.g. around 0.20) in cases where the intrinsic dimensionality of the data cannot be significantly reduced without considerably increasing stress, isoMDS performs worse (and yields a stress value of 0.31 in my example), while solutions tend to be similar for better fits and lower intrinsic dimensionality. I tried this on another data set where isoMDS yields a stress value of 0.19 and Minissa a stress value of 0.14. Now the latter would still be considered a fair solution by some people while the former indicates a poor fit regardless of how strict your judgment is. I generally prefer using R over mixing with different programs, so it would be nice if results were of comparable quality... Cheers Phil
Dear Phil, I don't have experiences with Minissa but I know that isoMDS is bad in some situations. I have even seen situations with non-metric dissimilarities in which the classical MDS was preferable. Some alternatives that you have: 1) Try to start isoMDS from other initial configurations (by default, it starts from the classical solution). 2) Try sammon mapping (command should be "sammon"). 3) Have a look at XGvis/GGvis (which may be part of XGobi/GGobi). These are not directly part of R but have R interfaces. They allow you to toy around quite a lot with different algorithms, stress functions (the isoMDS stress is not necessarily what you want) and initial configurations so that you can find a better solution and understand your data better. Unfortunately I don't have the time to give you more detail, but google for it (or somebody else will tell you more). Best, Christian On Tue, 13 Feb 2007, Philip Leifeld wrote:> Dear useRs, > > last week I asked you about a problem related to isoMDS. It turned > out that in my case isoMDS was trapped. Nonetheless, I still have > some problems with other data sets. Therefore I would like to know if > anyone here has experience with how well isoMDS performs in > comparison to other non-metric MDS routines, like Minissa. > > I have the feeling that for large data sets with a high stress value > (e.g. around 0.20) in cases where the intrinsic dimensionality of the > data cannot be significantly reduced without considerably increasing > stress, isoMDS performs worse (and yields a stress value of 0.31 in > my example), while solutions tend to be similar for better fits and > lower intrinsic dimensionality. I tried this on another data set > where isoMDS yields a stress value of 0.19 and Minissa a stress value > of 0.14. > > Now the latter would still be considered a fair solution by some > people while the former indicates a poor fit regardless of how strict > your judgment is. I generally prefer using R over mixing with > different programs, so it would be nice if results were of comparable > quality... > > Cheers > > Phil > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >*** --- *** Christian Hennig University College London, Department of Statistical Science Gower St., London WC1E 6BT, phone +44 207 679 1698 chrish at stats.ucl.ac.uk, www.homepages.ucl.ac.uk/~ucakche
Sorry for not threading: I don't subscribe to this list, and the linking of web browser and email seems to be rudimentary. I don't know what is Minissa. Sounds like a piece of software. What is the method it implements? That is, is it supposed to implement the same method as isoMDS or something else? IsoMDS implements Kruskal's (and Young's and Sheperd's and Torgeson's) NMDS, but there are other methods too. You are supposed to get similar results only with the same method. For instance, there are various definitions of stress, two of them amusingly called stress-1 and stress-2, but there are others. You didn't give much detail about how you used isoMDS. We already discussed the danger of trapping in the starting configuration which you can avoid with trying (several) random starting configurations. Have you used 'tol' (and 'maxit') arguments in isoMDS? The default 'tol' is rather slack, and 'maxit' fairly low, since (speculation) the function was written a long time ago when computer were slow, but if you have something better than 75MHz i486, you can try with other values. I have used isoMDS quite a lot, and I have had good experience. Cheers, Jari Oksanen
Thanks for your message.> I don't know what is Minissa. Sounds like a piece of software. What > is the method it implements? That is, is it supposed to implement > the same method as isoMDS or something else? IsoMDS implements > Kruskal's (and Young's and Sheperd's and Torgeson's) NMDS, but > there are other methods too. You are supposed to get similar > results only with the same method. For instance, there are various > definitions of stress, two of them amusingly called stress-1 and > stress-2, but there are others.Yes, Minissa uses Kruskal's NMDS and stress1, so results should be comparable.> You didn't give much detail about how you used isoMDS. We already > discussed the danger of trapping in the starting configuration > which you can avoid with trying (several) random starting > configurations. Have you used 'tol' (and 'maxit') arguments in > isoMDS? The default 'tol' is rather slack, and 'maxit' fairly low, > since (speculation) the function was written a long time ago when > computer were slow, but if you have something better than 75MHz > i486, you can try with other values. > Cheers, Jari OksanenThis was my initial call: mds <- isoMDS(dist, y = cmdscale(dist, k = 2), k=2, tol = 1e-3, maxit = 500) I played around a little bit with tol and maxit (adding some zeros...) and increased the number of dimensions, but it did not change the results significantly. Using initMDS did not improve the result either. Unfortunately, my data set is too large to be displayed here. Any other ideas? My stress value is still 1.5 as much as in other implementations of NMDS. Cheers Phil
philip.leifeld at uni-konstanz.de wrote:> This was my initial call: > > mds <- isoMDS(dist, y = cmdscale(dist, k = 2), k=2, tol = 1e-3, maxit > = 500) > > I played around a little bit with tol and maxit (adding some > zeros...) and increased the number of dimensions, but it did not > change the results significantly. Using initMDS did not improve the > result either. Unfortunately, my data set is too large to be > displayed here. Any other ideas? My stress value is still 1.5 as much > as in other implementations of NMDS. >It is really difficult to believe that isoMDS would work so completely differently from other implementations. I guess you already tried tol=1e-7? After this, a radical trick is to give the Minissa result as the starting configuration, and see if you stay there and get the same stress as Minissa reported. You should. In particular, if you iterate away from the starting configuration, then the starting configuration was not as good as you assumed. If this happens, it would be time to check the data. I assume you have read in dissimilarities from external files, and surprises do happen (it makes sense to check the data anyway). Increasing the number of dimensions should not get you into a similar solution as with some other implementation using a lower number of dimensions. About the problems Christian Hennig mentioned: My interpretation of his message was that he was not concerned about isoMDS in particular but about NMDS in general (but he will correct me if my interpretation was wrong). I can imagine cases where non-metric solution works badly, in particular with small data sets. However, that should concern all implementations similarly, and probably it should be visible in Shepard plots (see isoMDS help). Cheers, Jari Oksanen