Martin Guetlein
2014-Jul-04 07:12 UTC
[R] sammon fails with duplicates error, but no duplicates there (MASS package)
Hi all, the sammon mapping fails with message "initial configuration has duplicates". But there are no duplicates in my data (see example below). Apparently, the problem is that row 9 and 10 have an equal distance to all other rows (but they are not equal, see last two columns). Any help to get sammon working would be great, Kind regards, Martin library("MASS") c1 <- c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) c2 <- c(0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) c3 <- c(1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) c4 <- c(0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) c5 <- c(1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0) c6 <- c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0) c7 <- c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0) c8 <- c(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) c9 <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0) c10<- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1) # working data <- rbind(c1,c2,c3,c4,c5,c6,c7,c8,c9) sammon(dist(data)) # not working: data <- rbind(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10) sammon(dist(data))
Frede Aakmann Tøgersen
2014-Jul-04 08:02 UTC
[R] sammon fails with duplicates error, but no duplicates there (MASS package)
Hi It seems to be related to the way that the default start values (y argument of sammon) are calculated. Here the last two rows are the same:> cmdscale(dist(data), 2)[,1] [,2] c1 2.04910556 -0.3627887 c2 -0.01889892 -0.1822057 c3 0.40767629 0.2599026 c4 0.81569304 -0.4165993 c5 0.70362596 -0.3573003 c6 -1.69673266 -1.7209956 c7 -0.65997449 -0.2888096 c8 -0.24449262 0.4502489 c9 -0.67800108 1.3092739 c10 -0.67800108 1.3092739 Try to perturb the start values using jitter(). Like this> sammon(dist(data), y = jitter(cmdscale(dist(data), 2)))Initial stress : 0.18304 stress after 10 iters: 0.07867, magic = 0.092 stress after 20 iters: 0.05149, magic = 0.500 stress after 30 iters: 0.05101, magic = 0.500 stress after 40 iters: 0.05096, magic = 0.500 $points [,1] [,2] c1 2.12900041 -1.7255589 c2 0.32144017 -0.4397770 c3 1.09694083 1.2989299 c4 1.90228818 0.3198121 c5 0.09479179 -1.7229204 c6 -2.35619505 -1.2913663 c7 -0.95749355 -0.2635698 c8 -0.08310984 0.6903391 c9 -1.48236001 1.2443252 c10 -0.66530292 1.8897858 $stress [1] 0.0509611 $call sammon(d = dist(data), y = jitter(cmdscale(dist(data), 2)))>Yours sincerely / Med venlig hilsen Frede Aakmann T?gersen Specialist, M.Sc., Ph.D. Plant Performance & Modeling Technology & Service Solutions T +45 9730 5135 M +45 2547 6050 frtog at vestas.com http://www.vestas.com Company reg. name: Vestas Wind Systems A/S This e-mail is subject to our e-mail disclaimer statement. Please refer to www.vestas.com/legal/notice If you have received this e-mail in error please contact the sender.> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] > On Behalf Of Martin Guetlein > Sent: 4. juli 2014 09:13 > To: r-help at r-project.org > Subject: [R] sammon fails with duplicates error, but no duplicates there > (MASS package) > > Hi all, > > the sammon mapping fails with message "initial configuration has > duplicates". But there are no duplicates in my data (see example > below). > Apparently, the problem is that row 9 and 10 have an equal distance to > all other rows (but they are not equal, see last two columns). > > Any help to get sammon working would be great, > Kind regards, > Martin > > > library("MASS") > c1 <- c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0) > c2 <- c(0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0) > c3 <- c(1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0) > c4 <- c(0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0) > c5 <- c(1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, > 0, 0, 0, 0, 0) > c6 <- c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, > 1, 1, 1, 0, 0) > c7 <- c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, > 0, 0, 0, 0, 0) > c8 <- c(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0) > c9 <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 1, 0) > c10<- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 1) > # working > data <- rbind(c1,c2,c3,c4,c5,c6,c7,c8,c9) > sammon(dist(data)) > # not working: > data <- rbind(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10) > sammon(dist(data)) > > ______________________________________________ > R-help at r-project.org 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.