R: Bhattacharyya discriminant projection

batcoord {fpc} | R Documentation

## Bhattacharyya discriminant projection

### Description

Computes Bhattacharyya discriminant projection coordinates as described in Fukunaga (1990), p. 455 ff.

### Usage

    batcoord(xd, clvecd, clnum=1, dom="mean")
    batvarcoord(xd, clvecd, clnum=1)

### Arguments

`xd` | the data matrix; a numerical object which can be coerced to a matrix.
`clvecd` | integer or logical vector of class numbers; length must equal `nrow(xd)`.
`clnum` | integer, one of the values of `clvecd`, if this is an integer vector. Bhattacharyya projections can only be computed if there are only two classes in the dataset. `clnum` is the number of one of the two classes. All the points indicated by other values of `clvecd` are interpreted as the second class.
`dom` | string. `dom="mean"` means that the discriminant coordinate for the group means is computed as the first projection direction by `discrcoord` (option `pool="equal"`; both classes have the same weight for computing the within-class covariance matrix). Then the data is projected into a subspace orthogonal (w.r.t. the within-class covariance) to the discriminant coordinate, and the projection coordinates to maximize the differences in variance are computed. `dom="variance"` means that the projection coordinates maximizing the difference in variances are computed. Then they are ordered with respect to the Bhattacharyya distance, which takes also the mean differences into account. Both procedures are implemented as described in Fukunaga (1990).

### Details

`batvarcoord` computes the optimal projection coordinates with respect to the difference in variances. `batcoord` combines the differences in mean and variance as explained for the argument `dom`.

### Value

`batcoord` returns a list with the components `ev, rev, units, proj`. `batvarcoord` returns a list with the components `ev, rev, units, proj, W, S1, S2`.

`ev` | vector of eigenvalues. If `dom="mean"`, then first eigenvalue from `discrcoord`. Further eigenvalues are of S_1^{-1}S_2, where S_i is the covariance matrix of class i. For `batvarcoord` or if `dom="variance"`, all eigenvalues come from S_1^{-1}S_2 and are ordered by `rev`.
`rev` | for `batcoord`: vector of projected Bhattacharyya distances (Fukunaga (1990), p. 99). Determine quality of the projection coordinates. For `batvarcoord`: vector of amount of projected difference in variances.
`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`.
`W` | matrix S_1^{-1}S_2.
`S1` | covariance matrix of the first class.
`S2` | covariance matrix of the second class.

### Author(s)

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

### References

Fukunaga, K. (1990). Introduction to Statistical Pattern Recognition (2nd ed.). Boston: Academic Press.

### See Also

`plotcluster` for straight forward discriminant plots.

`discrcoord` for discriminant coordinates.

`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"))
    bcf2 <- batcoord(face,grface==2)
    plot(bcf2$proj,col=1+(grface==2))
    bcfv2 <- batcoord(face,grface==2,dom="variance")
    plot(bcfv2$proj,col=1+(grface==2))
    bcfvv2 <- batvarcoord(face,grface==2)
    plot(bcfvv2$proj,col=1+(grface==2))

[Package fpc version 2.1-10 Index]