Le modèle additif généralisé

add.png

\bullet Présentation:

Le modèle additif généralisé, que nous pouvons retrouvons sous l’acronyme GAM, a été élaboré par Trevor Hastie et Rob Tibshirani en 1990.  Le modèle GAM se base sur la somme (doù le terme d’additif) de fonctions f_1, \cdots, f_P de transformation des différentes variables explicatives \mathbf{X} = (X ^1, \cdots, X^P).

La variable à expliquer Y peut être de tout format et les variables explicatives \mathbf{X} = (X ^1, \cdots, X ^P) doivent êtres continues.

Le modèle GAM nécessite un jeu d’apprentissage pour sa construction et un jeu de test pour sa validation car il est sujet à un possible fort sur-apprentissage.  En dépit de sa puissance avérée pour modéliser un phénomène, il reste peu conseillé si nous disposons d’un nombre P de variables explicatives trop important du fait d’un coût de calcul très élevé.

\bullet Le modèle additif généralisé:

Hypothèse préliminaire: \mathbf{X} continue.

Le modèle:

La forme générale du modèle est,

E[Y | X ^1, \dots, X ^P] = \alpha + \sum_{p = 1} ^P f_p (X ^p)

Avec f_p, \forall p \in [1, P], fonction de transformation associée à la variable X ^p ou au uplet de variables explicatives. Deux principaux algorithmes d’estimation des paramètres sont utilisés: l’algorithme Backfitting et l’algorithme général local de scoring,

L’Algorithme backfitting (Friedman et Stuezle, 1981):

– Etape d’initialisation: poser f_0 = E[Y] = \frac{1}{n} \sum_{i = 1} ^n Y_i, et f_p ^0 = 0, \forall p \in[1, P]

– Etape itérative t: pour p \in [1,P], déterminer,

  • R_p = Y - f_0 - \sum_{k = 1} ^{p - 1} f_k ^t (X ^k) - \sum_{k = p + 1} ^P f_k ^{t - 1} (X ^k)
  • f_p ^t = E[R_p | X ^p]

Tant que,

\frac{1}{n} || Y - s_0 - \sum_{p = 1} ^P s_p ^t (X ^p) || ^2 décroît ou satisfait le critère de convergence

A noter que pour p = 1, \sum_{k = 1} ^{1 - 1} s_k ^t (X ^k) = \sum_{k = 1} ^0 s_k ^t (X ^k) = 0 et pour p = P, \sum_{k = P + 1} ^P s_k ^t (X ^k) = 0.

De plus, l’estimation des différentes fonctions de lissage à l’instant t, f_p ^t, se fait selon la fonction lien retenue (modèle linéaire, logistique, etc).

Les transformations:

Le modèle GAM se base donc sur la transformation de variables ou de combinaisons de variables afin d’optimiser le modèle prédictif construit. A ce titre, trois principales fonctions existent: La fonction Cubic Smoothing Spline, la fonction de régression locale (LOESS) et la fonction Thin-Plate Smoothing Spline.

– La fonction Cubic Smoothing Spline de paramètre \lambda \in [0, + \infty[:

RSS(f,\lambda) = \sum_{i = 1} ^n [y_i - f(x_i)] ^2 + \lambda \int (f '' (t)) ^2 dt

– La fonction LOESS de paramètre le noyau K:

min_{\alpha(x_0), \beta(x_0)} \sum_{i = 1} ^n K_{\lambda} (x_0,x_i) [y_i - \alpha(x_0) - \beta(x_0) x_i] ^2

– La fonction Thin-Plate Smooting Spline:

f(x) = \beta_0 + \beta ^t x + \sum_{i = 1} ^n \alpha_i h_i (x), h_i (x) = \theta(|| x - x_p||), \theta(z) = z ^2 log z ^2

\bullet Annexe théorique:

Cette partie de l’article présente une esquisse de la démonstration des fonctions à estimer pour déterminer les valeurs de \mathbf{X} selon la projection f = (f_1, f_2, \cdots).

– Nous avons vu que la fonction Cubic Smoothing Spline de paramètre \lambda \in [0, + \infty[ était définie ainsi:

RSS(f,\lambda) = \sum_{i = 1} ^n [y_i - f(x_i)] ^2 + \lambda \int (f '' (t)) ^2 dt

Lorsque \lambda = 0 alors f peut être n’importe quel fonction d’interpolation de X. Si \lambda = \infty, alors f est la fonction des moindres carrés partiels et aucune derivée seconde ne peut être obtenue.

Pour obtenir une version simplifiée de la fonction Cubic Smoothing Spline, nous posons D_j(x) un sous-ensemble de D fonctions basiques et \theta un vecteur de paramètres à estimer. La fonction d’origine peut alors se réécrire:

RSS(\theta,\lambda) = (y - D \theta) ^t (y - D \theta) + \lambda \theta ^t \Omega_N \theta

, avec \lbrace D \rbrace_{i,j} = D_j (x_i) et \lbrace \Omega_N \rbrace_{j,k} = \int D_j '' (t) D_k '' (t) dt. La solution est alors,

\hat{\theta} = (D ^t D + \lambda \Omega_D) ^{-1} D ^t y

, qui s’apparente à la régression ridge généralisée. Après développement, nous obtenons ainsi la forme simplifiée de f,

\hat{f}(x) = \sum_{j = 1} ^D D_j (x) \hat{\theta}_j

– Nous avons vu que la fonction LOESS de paramètre le noyau K était définie ainsi:

min_{\alpha(x_0), \beta(x_0)} \sum_{i = 1} ^n K_{\lambda} (x_0,x_i) [y_i - \alpha(x_0) - \beta(x_0) x_i] ^2

La fonction d’estimation est de la forme,

\hat{f} (x_0) = \hat{\alpha} (x_0) + \hat{\beta} (x_0) x_0

Nous définissons alors la fonction du vecteur de valeurs: b(x) ^t = (1,x), \mathbf{B} la matrice de régression de taille N \times 2 composée des b(x_i) ^t et \mathbf{W}(x_0) la matrice diagonale de taille N \times N et dont l’élément i est K_{\lambda} (x_0, x_i). Nous avons alors,

\hat{f} (x_0) = b(x_0) ^t \mathbf{B} ^t \mathbf{W} (x_0) \mathbf{B} ^{-1} \mathbf{B} ^t \mathbf{W} (x_0) y = \sum_{i = 1} ^N l_i (x_0) y_i

Ce qui nous donne une expression explicite pour l’estimation de la LOESS.

– Nous avons vu que la fonction Thin-Plate Smooting Spline était définie ainsi:

f(x) = \beta_0 + \beta ^t x + \sum_{i = 1} ^n \alpha_i h_i (x)

, avec h_i (x) = \theta(|| x - x_p||) et \theta(z) = z ^2 log z ^2.

Soit \mathbf{X} \in R ^2 et les fonctions de base de la forme h_{1,k} (X ^1), \forall k \in 1, \cdots, M_1 des coordonnées de X ^1 et de même pour la fonction h_{2,k} (X ^2), \forall 1, \cdots, M_2. Nous définissons alors,

g_{j,k} (\mathbf{X}) = h_{1,j} (X ^1) h_{2,k} (X ^2), j = 1, \cdots, M_1 et k = 1, \cdots, M_2

, que nous pouvons généraliser avec la forme suivante,

g(\mathbf{X}) = \sum_{j = 1} ^{M_1} \sum_{k = 1} ^{M_2} \theta_{j,k} g_{j,k} (\mathbf{X})

Pour estimer cette fonction, l’idée est de résoudre le problème suivant,

min_J \sum_{i = 1} ^N \lbrace y_i - f(x_i) \rbrace ^2 + \lambda J[f]

, avec J fonction de pénalisation visant à stabiliser f.

De plus, si le paramètre \lambda \rightarrow 0 alors la solution s’approche d’une fonction d’interpolation et si \lambda \rightarrow \infty alors elle s’approche d’un plan des moindres carrés. Pour les valeurs intermédiaires de \lambda, la solution peut être représentée comme une fonction linéaire dont les coefficients sont obtenus par régression ridge.

La solution est alors de la forme,

f(x) = \beta_0 + \beta^t x + \sum_{j = 1} ^N \alpha_j h_j (x)

, où h_j(x) = \eta(||x - x_j||) et \eta(z) = z ^2 log z ^2.

\bullet Application informatique:

Procédure SAS: https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_gam_sect004.htm

Package et fonction R: https://stat.ethz.ch/R-manual/R-devel/library/mgcv/html/gam.html

\bullet Bibliographie:

– The Elements of Statistical Learning de Trevor Hastie, Robert Tibshirani et Jerome Friedman.

– Data Mining et statistique décisionnelle. L’Intelligence des données de Stéphane Tufféry.

https://www.math.univ-toulouse.fr/~besse/pub/Appren_stat.pdf