R: Classical (Metric) Multidimensional Scaling

cmdscale {stats} | R Documentation

## Classical (Metric) Multidimensional Scaling

### Description

Classical multidimensional scaling of a data matrix. Also known as principal coordinates analysis (Gower, 1966).

### Usage

    cmdscale(d, k = 2, eig = FALSE, add = FALSE, x.ret = FALSE)

### Arguments

`d` | a distance structure such as that returned by `dist` or a full symmetric matrix containing the dissimilarities.
`k` | the dimension of the space which the data are to be represented in; must be in {1,2,...,n-1}.
`eig` | indicates whether eigenvalues should be returned.
`add` | logical indicating if an additive constant c* should be computed, and added to the non-diagonal dissimilarities such that all n-1 eigenvalues are non-negative.
`x.ret` | indicates whether the doubly centred symmetric distance matrix should be returned.

### Details

Multidimensional scaling takes a set of dissimilarities and returns a set of points such that the distances between the points are approximately equal to the dissimilarities.

The functions `isoMDS` and `sammon` in package MASS provide alternative ordination techniques.

When `add = TRUE`, an additive constant c* is computed, and the dissimilarities d[i,j] + c* are used instead of the original d[i,j]'s.

Whereas S (Becker et al., 1988) computes this constant using an approximation suggested by Torgerson, R uses the analytical solution of Cailliez (1983), see also Cox and Cox (1994).

### Value

If `eig = FALSE` and `x.ret = FALSE` (default), a matrix with `k` columns whose rows give the coordinates of the points chosen to represent the dissimilarities.
Otherwise, a list containing the following components.

`points` | a matrix with `k` columns whose rows give the coordinates of the points chosen to represent the dissimilarities.
`eig` | the n-1 eigenvalues computed during the scaling process if `eig` is true.
`x` | the doubly centered distance matrix if `x.ret` is true.
`GOF` | a numeric vector of length 2, equal to say (g.1,g.2), where g.i = (sum{j=1..k} lambda[j]) / (sum{j=1..n} T.i(lambda[j])), where lambda[j] are the eigenvalues (sorted decreasingly), T.1(v) = abs(v), and T.2(v) = max(v, 0).

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Cailliez, F. (1983) The analytical solution of the additive constant problem. Psychometrika 48, 343–349.

Cox, T. F. and Cox, M. A. A. (1994) Multidimensional Scaling. Chapman and Hall.

Gower, J. C. (1966) Some distance properties of latent root and vector methods used in multivariate analysis. Biometrika 53, 325–328.

Mardia, K. V., Kent, J. T. and Bibby, J. M. (1979). Chapter 14 of Multivariate Analysis, London: Academic Press.

Seber, G. A. F. (1984). Multivariate Observations. New York: Wiley.

Torgerson, W. S. (1958). Theory and Methods of Scaling. New York: Wiley.

### See Also

`dist`. Also `isoMDS` and `sammon` in package MASS.

### Examples

    require(graphics)

    loc <- cmdscale(eurodist)
    x <- loc[,1]
    y <- -loc[,2]
    plot(x, y, type="n", xlab="", ylab="", main="cmdscale(eurodist)")
    text(x, y, rownames(loc), cex=0.8)

    cmdsE <- cmdscale(eurodist, k=20, add = TRUE, eig = TRUE, x.ret = TRUE)
    utils::str(cmdsE)

[Package stats version 2.8.1 Index]