Robust Linear Models

Robust linear models with support for the M-estimators listed under Norms.

See Module Reference for commands and arguments.


# Load modules and data
In [1]: import statsmodels.api as sm

In [2]: data = sm.datasets.stackloss.load()

In [3]: data.exog = sm.add_constant(data.exog)

# Fit model and print summary
In [4]: rlm_model = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT())

In [5]: rlm_results =

In [6]: print(rlm_results.params)
[-41.0265   0.8294   0.9261  -0.1278]

Detailed examples can be found here:

Technical Documentation


  • PJ Huber. ‘Robust Statistics’ John Wiley and Sons, Inc., New York. 1981.
  • PJ Huber. 1973, ‘The 1972 Wald Memorial Lectures: Robust Regression: Asymptotics, Conjectures, and Monte Carlo.’ The Annals of Statistics, 1.5, 799-821.
  • R Venables, B Ripley. ‘Modern Applied Statistics in S’ Springer, New York,

Module Reference

Model Classes

RLM(endog, exog[, M, missing]) Robust Linear Models

Model Results

RLMResults(model, params, ...) Class to contain RLM results


AndrewWave([a]) Andrew’s wave for M estimation.
Hampel([a, b, c]) Hampel function for M-estimation.
HuberT([t]) Huber’s T for M estimation.
LeastSquares Least squares rho for M-estimation and its derived functions.
RamsayE([a]) Ramsay’s Ea for M estimation.
RobustNorm The parent class for the norms used for robust regression.
TrimmedMean([c]) Trimmed mean function for M-estimation.
TukeyBiweight([c]) Tukey’s biweight function for M-estimation.
estimate_location(a, scale[, norm, axis, ...]) M-estimator of location using self.norm and a current estimator of scale.


Huber([c, tol, maxiter, norm]) Huber’s proposal 2 for estimating location and scale jointly.
HuberScale([d, tol, maxiter]) Huber’s scaling for fitting robust linear models.
mad(a[, c, axis, center]) The Median Absolute Deviation along given axis of an array
hubers_scale Huber’s scaling for fitting robust linear models.