set.seed(1234)
## seriate dist of 50 flowers from the iris data set
data("iris")
x <- as.matrix(iris[-5])
x <- x[sample(1:nrow(x), 50),]
rownames(x) <- 1:50
d <- dist(x)
## create a list of different seriations
methods <- c("HC_single", "HC_complete", "OLO", "GW", "R2E", "VAT",
"TSP", "Spectral", "SPIN", "MDS", "Identity", "Random")
os <- sapply(methods, function(m) {
cat("Doing ", m, "... ")
tm <- system.time(o <- seriate(d, method = m))
cat("took ", tm[3],"s.
")
o
})
## compare the methods using distances (default is based on
## Spearman's rank correlation coefficient)
ds <- seriation_dist(os)
hmap(ds, margin=c(7,7))
## compare using actual correlation (reversed orders are neg. correlated!)
cs <- seriation_cor(os)
hmap(cs, margin=c(7,7))
## normalize direction of the seriation orders.
## Now all but random and identity are highly pos. correlated
os2 <- seriation_align(os)
cs2 <- seriation_cor(os2)
hmap(cs2, margin=c(7,7))
## use Manhattan distance of the ranks (i.e., Spearman's foot rule)
## first without and then with pairwise alignment
ds <- seriation_dist(os, method="manhattan", align=FALSE)
plot(hclust(ds))
ds <- seriation_dist(os, method="manhattan", align=TRUE)
plot(hclust(ds))
Run the code above in your browser using DataLab