Régression multivariée par spline adaptative - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

La Régression multivariée par spline adaptative (en anglais MARS pour « Multivariate adaptive regression splines ») 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. C'est une technique de régression non paramétrique qui peut être vue comme un extension des modèles linéaires qui modèle automatiquement des interactions et des non-linéarités. Le terme MARS est une marque de Salford Systems.

Introduction

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) zn fonction de la température et de quelques autres variables. On peut remarquer que la dernière expression fait intervenir une interaction entre wind et vis. La figure sur la droite montre ozone lorsque wind et 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.

Logiciels

Libres

  • Plusieurs packages R modélisent la Régression multivariée par spline adaptative:
    • La fonction polymars dans le package polspline
    • La fonction mars dans le package mda
    • La fonction earth dans le package earth
  • On trouve aussi MARS dans Matlab

Commerciaux

  • MARS de Salford Systems
  • STATISTICA de StatSoft

Modèle MARS

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 Bi(x). Chaque ci é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
Page générée en 0.133 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise