R: Isometric Feature Mapping Ordination

isomap {vegan} | R Documentation

## Isometric Feature Mapping Ordination

### Description

The function performs isometric feature mapping which consists of three simple steps: (1) retain only some of the shortest dissimilarities among objects, (2) estimate all dissimilarities as shortest path distances, and (3) perform metric scaling (Tenenbaum et al. 2000).

### Usage

    isomap(dist, ndim=10, ...)
    isomapdist(dist, epsilon, k, path = "shortest", fragmentedOK =FALSE, ...)
    ## S3 method for class 'isomap'
    summary(object, axes = 4, ...)
    ## S3 method for class 'isomap'
    plot(x, net = TRUE, n.col = "gray", type = "points", ...)

### Arguments

`dist` | Dissimilarities.
`ndim` | Number of axes in metric scaling (argument `k` in `cmdscale`).
`epsilon` | Shortest dissimilarity retained.
`k` | Number of shortest dissimilarities retained for a point. If both `epsilon` and `k` are given, `epsilon` will be used.
`path` | Method used in `stepacross` to estimate the shortest path, with alternatives `"shortest"` and `"extended"`.
`fragmentedOK` | What to do if dissimilarity matrix is fragmented. If `TRUE`, analyse the largest connected group, otherwise stop with error.
`x, object` | An `isomap` result object.
`axes` | Number of axes displayed.
`net` | Draw the net of retained dissimilarities.
`n.col` | Colour of drawn net segments. This can also be a vector that is recycled for points, and the colour of the net segment is a mixture of joined points.
`type` | Plot observations either as `"points"`, `"text"` or use `"none"` to plot no observations. The `"text"` will use `ordilabel` if `net = TRUE` and `ordiplot` if `net = FALSE`, and pass extra arguments to these functions.
`...` | Other parameters passed to functions.

### Details

The function `isomap` first calls function `isomapdist` for dissimilarity transformation, and then performs metric scaling for the result. All arguments to `isomap` are passed to `isomapdist`. The functions are separate so that the `isompadist` transformation could be easily used with other functions than simple linear mapping of `cmdscale`.

Function `isomapdist` retains either dissimilarities equal or shorter to `epsilon`, or if `epsilon` is not given, at least `k` shortest dissimilarities for a point. Then a complete dissimilarity matrix is reconstructed using `stepacross` using either flexible shortest paths or extended dissimilarities (for details, see `stepacross`).

De'ath (1999) actually published essentially the same method before Tenenbaum et al. (2000), and De'ath's function is available in function `xdiss` in non-CRAN package mvpart. The differences are that `isomap` introduced the `k` criterion, whereas De'ath only used `epsilon` criterion. In practice, De'ath also retains higher proportion of dissimilarities than typical `isomap`.

The `plot` function uses internally `ordiplot`, except that it adds text over net using `ordilabel`. The `plot` function passes extra arguments to these functions. In addition, vegan3d package has function `rgl.isomap` to make dynamic 3D plots that can be rotated on the screen.

### Value

Function `isomapdist` returns a dissimilarity object similar to `dist`. Function `isomap` returns an object of class `isomap` with `plot` and `summary` methods. The `plot` function returns invisibly an object of class `ordiplot`. Function `scores` can extract the ordination scores.

### Note

Tenenbaum et al. (2000) justify `isomap` as a tool of unfolding a manifold (e.g. a 'Swiss Roll'). Even with a manifold structure, the sampling must be even and dense so that dissimilarities along a manifold are shorter than across the folds. If data do not have such a manifold structure, the results are very sensitive to parameter values.

### Author(s)

Jari Oksanen

### References

De'ath, G. (1999) Extended dissimilarity: a method of robust estimation of ecological distances from high beta diversity data. Plant Ecology 144, 191–199

Tenenbaum, J.B., de Silva, V. & Langford, J.C. (2000) A global network framework for nonlinear dimensionality reduction. Science 290, 2319–2323.

### See Also

The underlying functions that do the proper work are `stepacross`, `distconnected` and `cmdscale`. Function `metaMDS` may trigger `stepacross` transformation, but usually only for longest dissimilarities. The `plot` method of vegan minimum spanning tree function (`spantree`) has even more extreme way of isomapping things.

### Examples

    ## The following examples also overlay minimum spanning tree to
    ## the graphics in red.
    op <- par(mar=c(4,4,1,1)+0.2, mfrow=c(2,2))
    data(BCI)
    dis <- vegdist(BCI)
    tr <- spantree(dis)
    pl <- ordiplot(cmdscale(dis), main="cmdscale")
    lines(tr, pl, col="red")
    ord <- isomap(dis, k=3)
    ord
    pl <- plot(ord, main="isomap k=3")
    lines(tr, pl, col="red")
    pl <- plot(isomap(dis, k=5), main="isomap k=5")
    lines(tr, pl, col="red")
    pl <- plot(isomap(dis, epsilon=0.45), main="isomap epsilon=0.45")
    lines(tr, pl, col="red")
    par(op)
    ## colour points and web by the dominant species
    dom <- apply(BCI, 1, which.max)
    ## need nine colours, but default palette  has only eight
    op <- palette(c(palette("default"), "sienna"))
    plot(ord, pch = 16, col = dom, n.col = dom)
    palette(op)

[Package vegan version 2.4-3 Index]