Description Usage Arguments Details Value Note Author(s) References See Also Examples

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).

1 2 3 4 5 6 7 |

`dist` |
Dissimilarities. |

`ndim` |
Number of axes in metric scaling (argument |

`epsilon` |
Shortest dissimilarity retained. |

`k` |
Number of shortest dissimilarities retained for a point. If
both |

`path` |
Method used in |

`fragmentedOK` |
What to do if dissimilarity matrix is
fragmented. If |

`x, object` |
An |

`axes` |
Number of axes displayed. |

`net` |
Draw the net of retained dissimilarities. |

`n.col` |
Colour of drawn net segments. |

`type` |
Plot observations either as |

`web` |
Colour of the web in rgl graphics. |

`...` |
Other parameters passed to functions. |

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
`xdiss`

in 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, function `rgl.isomap`

can make dynamic 3D plots that
can be rotated on the screen. The functions is based on
`ordirgl`

, but it adds the connecting lines. The function
passes extra arguments to `scores`

or
`ordirgl`

functions so that you can select axes, or define
colours and sizes of points.

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.

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.

Jari Oksanen

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.

The underlying functions that do the proper work are
`stepacross`

, `distconnected`

and `cmdscale`

.
Package mvpart provides a parallel (but a bit different) implementation
(`xdiss`

). Moreover, vegan 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.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ```
## 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)
## The following command requires user interaction
## Not run:
rgl.isomap(ord, size=4, color="hotpink")
## End(Not run)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.