Functions to perform robust variable selection and regression using the Fast and Scalable Cellwise-Robust Ensemble (FSCRE) algorithm. The approach establishes a robust foundation using the Detect Deviating Cells (DDC) algorithm and robust correlation estimates. It then employs a competitive ensemble architecture where a robust Least Angle Regression (LARS) engine proposes candidate variables and cross-validation arbitrates their assignment. A final robust MM-estimator is applied to the selected predictors.
High-dimensional data are often affected by cellwise contamination: individual cells of the predictor matrix deviate from the underlying structure without necessarily making the whole observation an outlier. Even a small fraction of contaminated cells can propagate across many observations, which is enough to mislead both classical variable selection methods and robust methods designed only for casewise (whole-observation) outliers.
srlars implements the Fast and Scalable Cellwise-Robust Ensemble (FSCRE)
algorithm: a competitive ensemble of sparse sub-models built on a cellwise-robust
foundation (Detect Deviating Cells imputation and wrapping-based robust
correlations), constructed via a robust Least-Angle-Regression proposer and a
cross-validation arbiter, then refit with robust MM-estimators. The method and its
theoretical properties are described in:
Christidis, A., Pyneeandee, J., and Cohen Freue, G. (2026). Fast and Scalable Cellwise-Robust Ensembles for High-Dimensional Data. arXiv:2603.20940
cellWise::DDC()
and correlations are estimated with the wrapping transform, so estimation stays
reliable when individual cells (not whole rows) are contaminated.n_models sub-models compete for
variables each round via cross-validated predictive improvement, rather than
being built independently.max_share sets how many sub-models a given
variable may appear in, from fully disjoint sub-models (the default) to
unrestricted sharing.n_min guarantees each sub-model reaches a minimum
number of variables even when the ensemble-wide stopping rule would otherwise cut
it short.cv.srlars() chooses max_share by cross-validation on
held-out ensemble prediction error, instead of comparing values by hand.You can install the stable version from CRAN:
install.packages("srlars", dependencies = TRUE)
You can install the development version from GitHub:
library(devtools)
devtools::install_github("AnthonyChristidis/srlars")
library(srlars)
# x, y: a (possibly cellwise-contaminated) high-dimensional training set
fit <- srlars(x, y,
n_models = 5, # ensemble size
x_preprocess = "ddc",
y_preprocess = "wrap",
cor_estimator = "wrap",
cv_fit = "huber",
cv_loss = "huber")
coef(fit) # ensemble-averaged coefficients
predict(fit, newx) # ensemble-averaged predictions
# Choose max_share automatically instead of setting it by hand:
cv_fit <- cv.srlars(x, y, n_models = 5)
coef(cv_fit) # coef()/predict() work directly on the cross-validated fit
For a complete walkthrough -- simulating cellwise-contaminated data, fitting
srlars(), and comparing max_share/n_min on the same dataset -- see the
package vignette:
vignette("srlars", package = "srlars")
This package is free and open source software, licensed under GPL (>= 2).