R: Neighborhood based discriminant coordinates

ncoord {fpc} | R Documentation

## Neighborhood based discriminant coordinates

### Description

Neighborhood based discriminant coordinates as defined in Hastie and Tibshirani (1996) and a robustified version as defined in Hennig (2003). The principle is to maximize the projection of a between classes covariance matrix, which is defined by averaging the between classes covariance matrices in the neighborhoods of all points.

### Usage

    ncoord(xd, clvecd, nn=50, weighted=FALSE,
                        sphere="mcd", orderall=TRUE, countmode=1000, ...)

### Arguments

`xd` | the data matrix; a numerical object which can be coerced to a matrix.
`clvecd` | integer vector of class numbers; length must equal `nrow(xd)`.
`nn` | integer. Number of points which belong to the neighborhood of each point (including the point itself).
`weighted` | logical. `FALSE` corresponds to the original method of Hastie and Tibshirani (1996). If `TRUE`, the between classes covariance matrices B are weighted by w/trace B, where w is some weight depending on the sizes of the classes in the neighborhood. Division by trace B reduces the effect of outliers. `TRUE` cooresponds to WNC as defined in Hennig (2003).
`sphere` | a covariance matrix or one of "mve", "mcd", "classical", "none". The matrix used for sphering the data. "mcd" and "mve" are robust covariance matrices as implemented in `cov.rob`. "classical" refers to the classical covariance matrix. "none" means no sphering and use of the raw data.
`orderall` | logical. By default, the neighborhoods are computed by ordering all points each time. If `FALSE`, the neighborhoods are computed by selecting `nn` times the nearest point from the remaining points, which may be faster sometimes.
`countmode` | optional positive integer. Every `countmode` algorithm runs `ncoord` shows a message.
`...` | no effect

### Value

List with the following components

`ev` | eigenvalues in descending order.
`units` | columns are coordinates of projection basis vectors. New points `x` can be projected onto the projection basis vectors by `x %*% units`
`proj` | projections of `xd` onto `units`.

### Author(s)

Christian Hennig c.hennig@ucl.ac.uk http://www.homepages.ucl.ac.uk/~ucakche/

### References

Hastie, T. and Tibshirani, R. (1996). Discriminant adaptive nearest neighbor classification. IEEE Transactions on Pattern Analysis and Machine Intelligence 18, 607-616.

Hennig, C. (2004) Asymmetric linear dimension reduction for classification. Journal of Computational and Graphical Statistics 13, 930-945 .

Hennig, C. (2005) A method for visual cluster validation. In: Weihs, C. and Gaul, W. (eds.): Classification - The Ubiquitous Challenge. Springer, Heidelberg 2005, 153-160.

### See Also

`plotcluster` for straight forward discriminant plots. `discrproj` for alternatives. `rFace` for generation of the example data used below.

### Examples

      set.seed(4634)
      face <- rFace(600,dMoNo=2,dNoEy=0)
      grface <- as.integer(attr(face,"grouping"))
      ncf <- ncoord(face,grface)
      plot(ncf$proj,col=grface)
      ncf2 <- ncoord(face,grface,weighted=TRUE)
      plot(ncf2$proj,col=grface)
      # ...done in one step by function plotcluster.

[Package fpc version 2.1-10 Index]