On Thu, 2004-09-09 at 04:53, Kjetil Brinchmann Halvorsen wrote: > > > Mardia, kent & Bibby defines the "standard transformation" from a > similarity matrix to a dissimilarity > (distance) matrix by > > d_rs <- sqrt( c_rr -2*c_rs + c_ss) > > where c_rs are the similarities. This assures the diagonal of the > dissimilarity matrix to be zero. > You could try that. > In R notation, this would be
sim2dist <- function(x) as.dist(sqrt(outer(diag(x), diag(x), "+") - 2*x)) Mardia, Kent & Bibby indeed passingly say that this is a `standard transformation' (page 403). However, it is really a canonical way only if diagonal elements in similarity matrix are sums of squares, and off-diagonal elements are cross products. In that case the `standard transformation' gives you Euclidean distances (or if you have variances/covariances or ones/correlations it gives you something similar). However, it is no standard if your similarities are something else, and cannot be transformed into Euclidean distances. However, in isoMDS this *may* not matter, since NMDS uses only rank order of dissimilarities, and any transformation giving dissimilarities in the same rank order *may* give similar results. The statement was conditions ("may"), since isoMDS uses cmdscale for the starting configuration, and cmdscale will give different results with different transformations. So isoMDS may stop in different (local) optima. Setting `tol' parameter low enough in isoMDS (see ?isoMDS) helped in a couple of cases I tried, and the results were practically identical with different transformations. So it doesn't matter too much how you change your similarities to dissimilarities, since isoMDS indeed treats them as dissimilarities (but cmdscale treats them as distances). cheers, jari oksanen -- J.Oksanen, Oulu, Finland. "Object-oriented programming is an exceptionally bad idea which could only have originated in California." E. Dijkstra ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html