# The Minimum Distance Empirical Bayesian Estimator (MDEB) classifier

### Description

Given a set of training data, this function builds the MDEB classifier from Srivistava and Kubokawa (2007). The MDEB classifier is an adaptation of the linear discriminant analysis (LDA) classifier that is designed for small-sample, high-dimensional data. Rather than using the standard maximum likelihood estimator of the pooled covariance matrix, Srivastava and Kubokawa (2007) have proposed an Empirical Bayes estimator where the eigenvalues of the pooled sample covariance matrix are shrunken towards the identity matrix: the shrinkage constant has a closed form and is quick to calculate.

The MDEB classifier from Srivistava and Kubokawa (2007) is an adaptation of the linear discriminant analysis (LDA) classifier that is designed for small-sample, high-dimensional data. Rather than using the standard maximum likelihood estimator of the pooled covariance matrix, Srivastava and Kubokawa (2007) have proposed an Empirical Bayes estimator where the eigenvalues of the pooled sample covariance matrix are shrunken towards the identity matrix: the shrinkage constant has a closed form and is quick to calculate

### Usage

1 2 3 4 5 6 7 8 9 10 |

### Arguments

`x` |
matrix containing the training data. The rows are the sample observations, and the columns are the features. |

`...` |
additional arguments |

`y` |
vector of class labels for each training observation |

`prior` |
vector with prior probabilities for each class. If NULL (default), then equal probabilities are used. See details. |

`formula` |
A formula of the form |

`data` |
data frame from which variables specified in |

`object` |
trained mdeb object |

`newdata` |
matrix of observations to predict. Each row corresponds to a new observation. |

### Details

The matrix of training observations are given in `x`

. The rows of `x`

contain the sample observations, and the columns contain the features for each
training observation.

The vector of class labels given in `y`

are coerced to a `factor`

.
The length of `y`

should match the number of rows in `x`

.

An error is thrown if a given class has less than 2 observations because the variance for each feature within a class cannot be estimated with less than 2 observations.

The vector, `prior`

, contains the *a priori* class membership for
each class. If `prior`

is NULL (default), the class membership
probabilities are estimated as the sample proportion of observations belonging
to each class. Otherwise, `prior`

should be a vector with the same length
as the number of classes in `y`

. The `prior`

probabilties should be
nonnegative and sum to one.

### Value

`mdeb`

object that contains the trained MDEB classifier

list predicted class memberships of each row in newdata

### References

Srivastava, M. and Kubokawa, T. (2007). "Comparison of Discrimination Methods for High Dimensional Data," Journal of the Japanese Statistical Association, 37, 1, 123-134.

Srivastava, M. and Kubokawa, T. (2007). "Comparison of Discrimination Methods for High Dimensional Data," Journal of the Japanese Statistical Association, 37, 1, 123-134.

### Examples

1 2 3 4 5 6 7 8 | ```
n <- nrow(iris)
train <- sample(seq_len(n), n / 2)
mdeb_out <- mdeb(Species ~ ., data = iris[train, ])
predicted <- predict(mdeb_out, iris[-train, -5])$class
mdeb_out2 <- mdeb(x = iris[train, -5], y = iris[train, 5])
predicted2 <- predict(mdeb_out2, iris[-train, -5])$class
all.equal(predicted, predicted2)
``` |