Régression multivariée par spline adaptative

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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 un 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 | modifier le code]

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 :

A linear model

\hat{y} = -37 + 5.1 x

\hat{y} est l'estimation de y par les données. La figure à droite montre une droite décrivant \hat{y} 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 :


\begin{align}
\hat{y} = &\ 25 \\
& + 6.1 \max(0, x  - 13) \\
& - 3.1 \max(0, 13 - x) \\
\end{align}
A simple MARS model of the same data

La figure à droite montre une estimation \hat{y} 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 \max (où \max(a,b) vaux a si a > b, b 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 :


\begin{align}
  \mathrm{ozone} = &\ 5.2 \\
&      +    0.93 \max(0, \mathrm{temp} - 58)  \\
&      -   0.64 \max(0, \mathrm{temp} - 68)  \\
&      -   0.046 \max(0,  234 - \mathrm{ibt})  \\
&      -   0.016 \max(0, \mathrm{wind} - 7) \max(0, 200 - \mathrm{vis})\\
\end{align}
Variable interaction in a MARS model

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 \mathrm{wind} et \mathrm{vis}. La figure sur la droite montre \mathrm{ozone} lorsque \mathrm{wind} et \mathrm{vis} ( 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 | modifier le code]

MARS construit des models de la forme

\hat{f}(x) = \sum_{i=1}^{k} c_i B_i(x) .

Le modèle est une somme pondérée de fonctions de bases B_i(x). Chaque c_i é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 | modifier le code]

Libres[modifier | modifier le code]

  • 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]

Commerciaux[modifier | modifier le code]

Notes[modifier | modifier le code]

(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,‎ 1991, p. 1–67 (DOI 10.1214/aos/1176347963)
  2. polspline
  3. mda
  4. earth
  5. ARESLab: Adaptive Regression Splines toolbox for Matlab
  6. MARS
  7. STATISTICA Data Miner
  8. Statsoft France.