Régression multivariée par spline adaptative

La Régression multivariée par spline adaptative (en anglais MARS pour « Multivariate adaptive regression splines ») est une méthode statistique ; plus précisément, c'est une forme de modèle de régression présentée pour la première fois par Jerome H. Friedman et Bernard Silverman en 1991[1]. C'est une technique de régression non paramétrique pouvant être vue comme une extension des régressions linéaires qui modélisent automatiquement des interactions et des non-linéarités. Le terme MARS est une marque de Salford Systems.

Introduction modifier

Soit une matrice de variables d'entrées x, et un vecteur de réponses observées y avec une réponse pour chaque ligne de x. Par exemple :

x y
10.5 16.4
10.7 18.8
10.8 19.7
... ...
20.6 77.0

Ici il y a une seule variable indépendante, aussi la matrice x est réduite a une seule colonne. Un modèle linéaire pour les données ci-dessus serait :

 
Un modèle linéaire.
 

  est l'estimation de y par les données. La figure à droite montre une droite décrivant   en fonction de x avec les valeurs réelles de y sous la forme de points rouges. Aux valeurs extrêmes de x, il semble que la relation entre x et y ne soit pas linéaire (regarder les valeurs de y pour des valeurs basses et les valeurs hautes de x). Nous nous tournons alors vers MARS pour prendre automatiquement en compte les non-linéarités. MARS construit un modèle à partir des données x et y de la manière suivante :

 
 
Un simple modèle MARS de même valeur.

La figure à droite montre une estimation   qui est plus proche des valeurs réelles de y. MARS a automatiquement créé un angle dans la droite précédente pour tenir compte de la non-linéarité des données à l'aide de fonctions charnières qui sont des expressions commençant par   (où   vaux   si  ,   sinon). Les fonctions charnières sont décrites plus en détail ci-dessous. Dans cet exemple simple nous pouvons voir graphiquement que y et x sont reliées non-linéairement entre elles (et on peut même supposer que y varie en fonction du carré de x). En général il peut y avoir plusieurs variables indépendantes et la relation entre y et ces variables peut ne pas être facilement découverte en regardant simplement une courbe. Voici un exemple d'expressions avec des plusieurs variables :

 
 
Interaction de variable dans un modèle MARS.

Cette expression modélise la pollution de l'air (niveau de l'ozone dans l'air) en fonction de la température et de quelques autres variables. On peut remarquer que la dernière expression fait intervenir une interaction entre   et  . La figure sur la droite montre   lorsque   et   (vent et force) varient, alors que les autres variables sont fixées à leur valeur médiane. La figure montre donc que le vent n'affecte pas le niveau de l'ozone dans l'air sauf si la visibilité est basse.

Modèle MARS modifier

MARS construit des modèles de la forme :

 .

Le modèle est une somme pondérée de fonctions de bases  .

Chaque   étant un coefficient constant. Chaque fonction de base peut prendre l'une des trois formes suivantes :

  • Une constante 1.

Il n'y a qu'un seul terme de ce type : l'intersection avec l'axe (la valeur moyenne de la variable à expliquer quand la variable explicative prend la valeur zéro). Dans l'exemple ici cette valeur est 5.2

  • Une fonction charnière
  • Un produit de fonctions charnières

Logiciels modifier

Libres modifier

  • Plusieurs packages R modélisent la Régression multivariée par spline adaptative:
    • La fonction polymars dans le package polspline[2]
    • La fonction mars dans le package mda[3]
    • La fonction earth dans le package earth[4]
  • On trouve aussi MARS dans Matlab[5]
  • Une version en python existe[6]

Commerciaux modifier

Notes modifier

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Multivariate adaptive regression splines » (voir la liste des auteurs).
  1. (en) J. H. Friedman, « Multivariate Adaptive Regression Splines », Annals of Statistics, vol. 19, no 1,‎ , p. 1–67 (DOI 10.1214/aos/1176347963).
  2. polspline
  3. mda
  4. earth
  5. ARESLab: Adaptive Regression Splines toolbox for Matlab
  6. (en) « Introduction — py-earth 0.1.0 documentation », sur contrib.scikit-learn.org (consulté le )
  7. MARS
  8. STATISTICA Data Miner
  9. Statsoft France.