Learn R Programming

robustbase (version 0.1-2)

covMcd: Robust Location and Scatter Estimation via MCD

Description

Compute a robust multivariate location and scale estimate with a high breakdown point, using the Fast MCD (Minimum Covariance Determinant) estimator.

Usage

covMcd(x, cor=FALSE, alpha=1/2, nsamp=500, seed=0, print.it=FALSE, control)

Arguments

x
a matrix or data frame.
cor
should the returned result include a correlation matrix? Default is cor = FALSE
alpha
numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., alpha*n observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.
nsamp
number of subsets used for initial estimates. Default is nsamp = 500
seed
starting value for random generator. Default is seed = 0
print.it
whether to print intermediate results. Default is print.it = FALSE
control
a list with estimation options - same as these provided in the fucntion specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the co

Value

  • An object of class "mcd" which is basically a list with components
  • centerthe final estimate of location.
  • covthe final estimate of scatter.
  • corthe (final) estimate of the correlation matrix (only if cor = TRUE).
  • critthe value of the criterion, i.e. the determinant.
  • bestthe best subset found and used for computing the raw estimates. The size of best is equal to quan.
  • mahmahalanobis distances of the observations using the final estimate of the location and scatter.
  • mcd.wtweights of the observations using the final estimate of the location and scatter.
  • raw.centerthe raw (not reweighted) estimate of location.
  • raw.covthe raw (not reweighted) estimate of scatter.
  • raw.mahmahalanobis distances of the observations based on the raw estimate of the location and scatter.
  • raw.weightsweights of the observations based on the raw estimate of the location and scatter.
  • Xthe input data as a matrix.
  • n.obstotal number of observations.
  • alphathe size of the subsets over which the determinant is minimized (the default is $(n+p+1)/2$).
  • quanthe number of observations on which the MCD is based. If quan equals n.obs, the MCD is the classical covariance matrix.
  • methodcharacter string naming the method (Minimum Covariance Determinant).
  • callthe call used (see match.call).

concept

High breakdown point

Details

The minimum covariance determinant estimator of location and scatter implemented in covMcd() is similar to the existing Rfunction cov.mcd() in MASS. The MCD method looks for the $h (> n/2)$ observations (out of $n$) whose classical covariance matrix has the lowest possible determinant. The raw MCD estimate of location is then the average of these $h$ points, whereas the raw MCD estimate of scatter is their covariance matrix, multiplied with a consistency factor. Based on these raw MCD estimates, a reweighting step is performed which increases the finite-sample eficiency considerably - see Pison et al.(2002). The implementation here uses the Fast MCD algorithm of Rousseeuw and Van Driessen (1999) to approximate the minimum covariance determinant estimator.

References

P. J. Rousseeuw and A. M. Leroy (1987) Robust Regression and Outlier Detection. Wiley.

P. J. Rousseeuw and K. van Driessen (1999) A fast algorithm for the minimum covariance determinant estimator. Technometrics 41, 212--223.

Pison, G., Van Aelst, S., and Willems, G. (2002), Small Sample Corrections for LTS and MCD, Metrika, 55, 111-123.

See Also

cov.mcd from package MASS; covOGK as cheaper alternative for larger dimensions.

Examples

Run this code
data(hbk)
hbk.x <- data.matrix(hbk[, 1:3])
covMcd(hbk.x)

## the following three statements are equivalent
c1 <- covMcd(hbk.x, alpha = 0.75)
c2 <- covMcd(hbk.x, control = rrcov.control(alpha = 0.75))
## direct specification overrides control one:
c3 <- covMcd(hbk.x, alpha = 0.75,
             control = rrcov.control(alpha=0.95))
c1

Run the code above in your browser using DataLab