rrcov: Scalable Robust Estimators with High Breakdown Point

CRAN version R-CMD-check downloads downloads license

The package rrcov provides scalable robust estimators with high breakdown point and covers a large number of robustified multivariate analysis methods, starting with robust estimators for the multivariate location and covariance matrix (MCD, MVE, S, MM, SD), the deterministic versions of MCD, S and MM estimates and regularized versions (MRCD) for high dimensions. These estimators are used to conduct robust principal components analysis (PcaCov()), linear and quadratic discriminant analysis (Linda(), Qda()), MANOVA. Projection pursuit algorithms for PCA to be applied in high dimensions are also available (PcaHubert(), PcaGrid() and PcaProj()).


The rrcov package is on CRAN (The Comprehensive R Archive Network) and the latest release can be easily installed using the command


Building from source

To install the latest stable development version from GitHub, you can pull this repository and install it using

## install.packages("remotes")
remotes::install_github("valentint/rrcov", build_opts = c("--no-build-vignettes"))

Of course, if you have already installed remotes, you can skip the first line (I have commented it out).


This is a basic example which shows you if the package is properly installed:

#> Loading required package: robustbase
#> Scalable Robust Estimators with High Breakdown Point (version 1.7-3)
(out <- CovMcd(hbk))
#> Call:
#> CovMcd(x = hbk)
#> -> Method:  Fast MCD(alpha=0.5 ==> h=40); nsamp = 500; (n,k)mini = (300,5) 
#> Robust Estimate of Location: 
#>       X1        X2        X3         Y  
#>  1.55833   1.80333   1.66000  -0.08667  
#> Robust Estimate of Covariance: 
#>     X1        X2        X3        Y       
#> X1   1.58739   0.03129   0.21694   0.10748
#> X2   0.03129   1.60733   0.25612   0.02864
#> X3   0.21694   0.25612   1.47254  -0.18174
#> Y    0.10748   0.02864  -0.18174   0.44081

Community guidelines

Report issues and request features

If you experience any bugs or issues or if you have any suggestions for additional features, please submit an issue via the Issues tab of this repository. Please have a look at existing issues first to see if your problem or feature request has already been discussed.

Contribute to the package

If you want to contribute to the package, you can fork this repository and create a pull request after implementing the desired functionality.

Ask for help

If you need help using the package, or if you are interested in collaborations related to this project, please get in touch with the package maintainer.