Last updated on 2021-11-23 by Martin Maechler
Robust (or "resistant") methods for statistics modelling have been
available in S from the very beginning in the 1980s; and then in R in
package stats
.
Examples are median()
, mean(*, trim =
. )
, mad()
, IQR()
,
or also fivenum()
, the statistic
behind boxplot()
in package graphics
)
or lowess()
(and loess()
) for robust
nonparametric regression, which had been complemented
by runmed()
in 2003.
Much further important functionality has been made available in
recommended (and hence present in all R versions) package
MASS (by Bill Venables and Brian Ripley, see the book
Modern Applied
Statistics with S).
Most importantly, they provide
rlm()
for robust regression and cov.rob()
for
robust multivariate scatter and covariance.
This task view is about R add-on packages providing newer or faster, more efficient algorithms and notably for (robustification of) new models.
Please send suggestions for additions and extensions to the task view maintainer.
An international group of scientists working in the field of robust statistics has made efforts (since October 2005) to coordinate several of the scattered developments and make the important ones available through a set of R packages complementing each other. These should build on a basic package with "Essentials", coined robustbase with (potentially many) other packages building on top and extending the essential functionality to particular models or applications. Since 2020 and the 2nd edition of Robust Statistics: Theory and Methods , RobStatTM covers its estimators and examples, notably by importing from robustbase and rrcov. Further, there is the quite comprehensive package robust, a version of the robust library of S-PLUS, as an R package now GPLicensed thanks to Insightful and Kjell Konis. Originally, there has been much overlap between 'robustbase' and 'robust', now robust depends on robustbase and rrcov, where 'robust' provides convenient routines for the casual user while robustbase and rrcov contain the underlying functionality, and provide the more advanced statistician with a large range of options for robust modeling.
We structure the packages roughly into the following topics, and typically will first mention functionality in packages robustbase, rrcov and robust.
Regression
lmrob()
(robustbase) and lmRob()
(robust) where the former uses the latest of the
fast-S algorithms and heteroscedasticity and autocorrelation corrected
(HAC) standard errors, the latter makes use of the M-S algorithm of
Maronna and Yohai (2000), automatically when there are factors
among the predictors (where S-estimators (and hence MM-estimators)
based on resampling typically badly fail).
The ltsReg()
and lmrob.S()
functions
are available in robustbase, but rather for comparison
purposes.
rlm()
from MASS had been the first widely
available implementation for robust linear models, and also one of
the very first MM-estimation implementations.
robustreg provides very simple M-estimates for linear
regression (in pure R).
Note that Koenker's quantile regression package quantreg
contains L1 (aka LAD, least absolute deviations)-regression as a
special case, doing so also for nonparametric regression via
splines.
Package mblm's function mblm()
fits
median-based (Theil-Sen or Siegel's repeated) simple linear models.
glmrob()
(robustbase)
and glmRob()
(robust).
Robust ordinal regression is provided by
rorutadis (UTADIS).
drgee fits "Doubly Robust" Generalized Estimating
Equations (GEEs), complmrob does robust linear
regression with compositional data as covariates.
multinomRob fits overdispersed multinomial regression
models for count data.
nlrob()
.
robustgam fits robust GAMs,
i.e., robust Generalized Additive Models.
Multivariate Analysis:
Depends
")
on robustbase provides nice S4 class based methods,
more methods for robust multivariate variance-covariance estimation,
and adds robust PCA methodology.
NA
) data, and by
rrcovHD, providing robust multivariate methods for
High Dimensional data.
princomp()
, e.g.,
X <- stackloss; pc.rob <- princomp(X, covmat= MASS::cov.rob(X))
covMcd()
than robust's
fastmcd()
, and similarly for covOGK()
.
OTOH, robust's covRob()
has automatically chosen
methods, notably pairwiseQC()
for large dimensionality p.
Package robustX for experimental, or other not yet
established procedures, contains BACON()
and
covNCC()
, the latter providing the
neighbor variance estimation (NNVE) method of Wang and Raftery (2002),
also available (slightly less optimized) in covRobust.
FastQn()
.
Clustering (Multivariate):
pam()
implementing "partioning around medians" is partly robust (medians
instead of very unrobust k-means) but is not good enough,
as e.g., the k clusters could consist of k-1 outliers one
cluster for the bulk of the remaining data.
Large Data Sets:
BACON()
(in robustX)
should be applicable for larger (n,p) than traditional robust
covariance based outlier detectors.
Descriptive Statistics / Exploratory Data Analysis:
boxplot.stats()
, etc mentioned above Time Series:
runmed()
provides most robust
running median filtering.Econometric Models:
vcov(lmrob())
also uses a version of HAC
standard errors for its robustly estimated linear models.
See also the CRAN task view Econometrics
Robust Methods for Bioinformatics:
Robust Methods for Survival Analysis:
Robust Methods for Surveys:
Geostatistics:
Collections of Several Methodologies:
Other Approaches to robust and resistant methodology:
14 days ago by Brian Ripley
Support Functions and Datasets for Venables and Ripley's MASS
8 days ago by James Pustejovsky
Cluster-Robust (Sandwich) Variance Estimators with Small-Sample Corrections
9 months ago by Martin Maechler
"Finding Groups in Data": Cluster Analysis Extended Rousseeuw et al.
10 months ago by Justin Esarey
Calculate Cluster-Robust p-Values and Confidence Intervals
2 years ago by David Kepplinger
Robust Linear Regression with Compositional Data as Covariates
5 years ago by Hana Sevcikova
Robust Covariance Estimation via Nearest Neighbor Cleaning
a year ago by Marek Gagolewski
Fast, Robust, and Outlier Resistant Hierarchical Clustering
10 months ago by Herve Cardot
Geometric Median, k-Medians Clustering and Robust Median PCA
3 years ago by Claudio Agostinelli
Robust Estimation in the Presence of Cellwise and Casewise Contamination and Missing Data
9 years ago by Jasjeet Singh Sekhon
Robust Estimation of Overdispersed Multinomial Regression Models
6 months ago by P. Filzmoser
Multivariate Outlier Detection Based on Robust Methods
7 years ago by Soo-Heang Eo
Outlier Detection for Multi-replicated High-throughput Data
4 years ago by Yusuf Bilgic
Rank-Based Estimation and Prediction in Random Effects Nested Models
3 years ago by Matthias Kohl
Optimally Robust Influence Curves and Estimators for Location and Scale
3 years ago by Matthias Kohl
Infinitesimally Robust Estimators for Preprocessing -Omics Data
6 years ago by Jonathan Rathjens
Robust Periodogram and Periodicity Detection Methods
3 years ago by Matthias Kohl
Optimally Robust Influence Curves for Regression and Scale
2 years ago by A. Randriamiharisoa
Truncated Maximum Likelihood Fit and Robust Accelerated Failure Time Regression for Gaussian and Log-Weibull Case
8 years ago by Raymond K. W. Wong
Robust Estimation for Generalized Additive Models
8 months ago by Martin Maechler
'eXtra' / 'eXperimental' Functionality for Robust Statistics
3 years ago by Matthias Kohl
Optimally Robust Estimation for Regression-Type Models
6 years ago by Maciek Sykulski
RobustPCA: Decompose a Matrix into Low-Rank and Sparse Components
9 months ago by Valentin Todorov
Robust Multivariate Methods for High Dimensional Data
2 years ago by Valentin Todorov
Scalable Robust Estimators with High Breakdown Point for Incomplete Data
4 months ago by Fernanda L. Schumacher
Scale Mixture of Skew-Normal Linear Mixed Models
5 months ago by Mikhail Zhelonkin
Robust Estimation and Inference in Sample Selection Models