CRAN_Status_Badge CRAN Data Downloads

srlars: Fast and Scalable Cellwise-Robust Ensembles

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

Key features

Installation

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")

Quick start

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")

License

This package is free and open source software, licensed under GPL (>= 2).