Classical multidimensional scaling aims at finding low-dimensional structure by preserving pairwise distances of data.

cmds(data, ndim = 2)

Arguments

data

an \((n\times p)\) matrix whose rows are observations.

ndim

an integer-valued target dimension.

Value

a named list containing

embed

an \((n\times ndim)\) matrix whose rows are embedded observations.

stress

discrepancy between embedded and origianl data as a measure of error.

References

Torgerson WS (1952). “Multidimensional Scaling: I. Theory and Method.” Psychometrika, 17(4), 401--419. ISSN 0033-3123, 1860-0980.

Examples

## use simple example of iris dataset
data(iris) 
idata = as.matrix(iris[,1:4])
icol  = as.factor(iris[,5])   # class information

## run Classical MDS
iris.cmds = cmds(idata, ndim=2)

## visualize
opar <- par(no.readonly=TRUE)
plot(iris.cmds$embed, col=icol, 
     main=paste0("STRESS=",round(iris.cmds$stress,4)))

par(opar)