← Back to all projects

OMAR — Open Multivariate Adaptive Regression

Python package for discovering localised, linear structures in complex, high-dimensional datasets.

Year
2025
Status
Completed
Stack
Python, Numba, Fortran, OpenMP
Repository
https://github.com/Helge-Stein-Group/omar

What is omar?

omar (Open Multivariate Adaptive Regression) is a MARS [Friedman, 1991; 1993] implementation. It approximates high-dimensional functions by an additive model of low-dimensional functions. It does so by exploiting local lower dimensional manifolds by an additive expansion in a subset of the complete tensor product of the univariate truncated power spline basis. To sample the resulting, exponentially growing function space, it employs a heuristic grow-prune strategy.

It is designed to automatically construct accurate, interpretable, and efficient piecewise-linear models of functions with many predictor and one response variable.

omar is ideal when:

  • You want to find the best possible linear approximation in high-dimensional, noisy data.
  • You prefer models with interpretable basis functions.
  • You need a fast, scalable tool for MARS modeling.

The model has the form:

$$ \hat{f}(x) = \sum_{n} a_n B_n(x) $$

where each $B_n(x) = \prod \text{max}(\pm(x-t),0)$ is a piecewise linear basis function at root $t$. A basis function therefore looks like this

Computational Backends

To enable practical use on modern hardware, omar includes two compute backends:

  • Pure Python for accessibility and clarity, speedup with Numba for JIT-compiled performance on CPU.
  • Fortran via f2py with native BLAS/LAPACK routines and OpenMP parallelism.

Installation

The easiest way to get started is by installing the prebuilt wheel from PyPI pip install omar.

Citations

Key highlights

  • Modernized version of the Multivariate Adaptive Regression Splines (MARS)
  • Improved numerical efficiency, based on modern rank-one update strategies
  • Optional Fortran acceleration with OpenMP parallelism for large datasets