Hi!
I have a dissimilarity matrix X and try to compare it with X' = dist(cmdscsale(X,k)).
If I increase k, I should expect that the error (or fit) should monotonically decrease, right.


Here is a sample code;

  library(mva)
  set.seed(12345)
  x <- as.matrix(dist(matrix(rnorm(100),ncol=10,byrow=T)))
#  x[1,2]<-x[2,1]<-1000  ## <<--** 1
#  x[5,6]<-x[6,5]<-1000  ## <<--** 2
  fit <- NULL
  for(k in 1:9)
   {
   mds <- cmdscale(x,k,add=T)
   xprime <- as.matrix(dist(mds$points))
   fit[k] <- sum((x-xprime)^2)/sum(x^2)
   }
  plot(fit)

When I run this example, it gives a nice "good" plot. However, with those two commented lines added, the plot is opposite, that is, the fit is increasing as k grows!

I really don't understand this behavior. The reason why I added those two lines is because my real input data is not an Euclidean distance matrix, but a dissimilarity matrix calculated from my own metric.

So, does this mean that the matrix X *must* be an Euclidean distance matrix in this example?
Thanks in advance.


- Youngser

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to