Rapport 3 - CUNI Frédéric

Transcription

Rapport 3 - CUNI Frédéric
U NIVERSITÉ DE T ECHNOLOGIE DE C OMPIÈGNE
SY19
Rapport TP3 : Sélection de modèles
linéaires, splines, modèles additifs
généralisés
CUNI Frédéric, CORTYL Alexandre
9 décembre 2015
Objectifs du TP :
L’objectif de ce TP est de nous familiariser avec la sélection de modèles linéaires. On va
pouvoir comparer les modèles obtenus en utilisant les critères BIC, Cp et R² ajusté par recherche exhaustive, sélection ascendante et sélection descendante. Nous utiliserons aussi
la méthode de régression ridge et la méthode de lasso
Ce sera aussi l’occasion, dans une deuxième partie, de mettre en pratique les notions de
splines et modèles additifs généralisés, vues en cours.
CUNI Frédéric, CORTYL Alexandre - A15
1
1 Sélection de modèles linéaires
Le fichier baseball.dat contient des données relatives au salaire de 337 joueurs de baseball
en 1991, et à 27 indicateurs de leurs performances sur l’année précédente. L’objectif de cet
exercice est de sélectionner un modèle de régression linéaire expliquant le salaire à partir
d’un sous-ensemble des variables explicatives.
1.1 Analyses des données
Premièrement, nous effectuons une analyse des données, pour déterminer quelles variables semblent le plus expliquer le salaire d’un joueur de baseball.
Nous commençons par représenter un histogramme
des salaires, pour observer leur répartission et leur
fréquence.
De l’histogramme ci-contre, on remarque que la répartition des salaires n’est pas “équitable” : la distribution des salaires s’apparente plus à une exponentielle négative. Très peu de joueurs gagnent beaucoup
d’argent, la large majorité ayant un salaire annuel inférieur à 100000 USD.
Cette observation se confirme, par l’affichage du résumé statistique de la variable salaire.
On se rend alors compte que la répartition est très densifiée et il faut ainsi trouver quelles variables expliquent cette diférence. En d’autre termes, trouver sur
quels critères le salaire d’un joueur est
basé.
Min
109
1st Qu.
230
Median
740
Mean
1249
3rd Qu.
2150
Pour essayer de comprendre au mieux les paramètres jouant sur le salaire d’un joueur de
baseball, nous effectuons une succession de matrice de corrélation, et regardons la disposition de la variable salaire par rapport aux autres.
Cette visualisation des données nous permet difficilement de distinguer clairement les
variables explicatives du salaire. On va donc pousser notre analyse en comparant les modèles obtenus par plusieurs méthodes. On sera alors en mesure de donner les variables
qui ont une influence supposée sur le montant du salaire d’un joueur de baseball.
1.2 Sélection de modèles
Une foi les données scrutées, nous allons utiliser différents outils, mis à disposition dans
R, pour sélectionner un ensemble de variables qui expliquent le plus la variable salaire,
CUNI Frédéric, CORTYL Alexandre - A15
2
Max
6100
donc qui ont une incidence directe sur celle-ci.
Pour notre analyse, on prends soin de partitionner aléatoirement les données initiales en
deux : un ensemble d’apprentissage (de taille n = 237) et un ensemble de test (de taille n t
= 100).
Parmi le grand nombre de variables explicatives potentielles, il s’agit de sélectionner celles
qui sont le plus à même d’expliquer la variable salaire. Cela permet d’économiser le nombre
de prédicteurs (et ainsi obtenir un modèle parcimonieux) et d’obtenir un bon pouvoir prédictif en éliminant les variables redondantes qui augmentent le facteur d’inflation de la
variance (VIF).
Plus le nombre de paramètres augmentent, plus l’ajustement au données est bon (R 2
proche de 1). En contrepartie, l’estimation des paramètres est détériorée (la variance des
estimateurs augmente) à cause des problèmes de colinéarité.
Nous partionnons ainsi les données baseball de façon aléatoire en un ensemble d’apprentissage et un ensemble de test.
La sélection des modèles se fera sur l’ensemble d’apprentissage et nous testerons ainsi
ce modèle sur l’ensemble de test pour en déduire l’erreur quadratique moyenne sur cet
ensemble.
1.2.1
Méthode du R 2 ajusté
Cette méthode permet d’étudier toutes les possibilités de combinaisons possibles entre
la variable à expliquer et les variables explicatives. En pratique, on conservera le modèle
présentant le R 2 le plus grand.
Pour se faire, on utilise la fonction leaps() qui retourne un tableau représentant les variables avec la valeur TRUE ou FALSE. Si la valeur est à TRUE, cela signifie que la variable
correspondante fait partie du meilleur modèle au sens du R 2 ajusté le plus grand.
On obtient le modèle suivant :
Sal ar y = β0 +β1 ∗obp +β2 ∗homer uns +β3 ∗r bi s +β4 ∗sos +β5 ∗sbs +β6 ∗ f r eeag ent +
β7 ∗ar bi t r at i on+β8 ∗hi t sper so+β9 ∗r bi sper so+β10 ∗hr sper er r or +β11 ∗soser r or s+
β12 ∗ sbsobp + ²
CUNI Frédéric, CORTYL Alexandre - A15
3
On peut ainsi constater que le modèle sélectionné est
constitué de 12 variables. Cette méthode permet donc
d’éliminer 15 variables parmi les 27 initiales, considérant qu’elles ont un impact négligeable sur l’explication du salaire. Ceci peut se confirmer en utilisant la
fonction regsubsets(). On obtient la courbe ci-contre,
représentant la valeur du R 2 ajusté en fonction du
nombre de paramètres.
On constate que le maximum est atteint lorsque le
nombre de variables vaut 12, ce qui confirme la méthode précédente.
Ce modèle reste relativement compliqué et difficilement interprétable vu qu’il se compose
de beaucoup de variables explicatives.
L’erreur quadratique moyenne sur l’ensemble de test généré est de : 444882.1.
1.2.2
Méthode du BIC
Cette méthode consiste a jugé le meilleur modèle selon un paramètre BIC. Comme précédemment, nous utilisons la fonction regsubsets() qui permet d’obtenir un courbe représentant le critère BIC en fonction des variables (figure gauche), mais également une
courbe représentant le critère BIC en fonction du nombres de variables.
Concernant la figure gauche, le meilleur modèle est celui ayant obtenu la valeur du critère
BIC la plus petite, donc la dernière ligne en noir en haut. On peut voir que l’on réduit à 6
variables grâce a cette méthode.
La figure de droite appuis cette théorie, car on voit bien que l’on atteint un minimum du
critère BIC pour un nombre de 6 variables.
On obtient le modèle suivant :
Sal ar y = β0 +β1 ∗homer uns +β2 ∗r bi s +β3 ∗sos +β4 ∗ f r eeag ent +β5 ∗ar bi t r at i on +
β6 ∗ sbsobp + ²
Ce modèle est plus simple que le précédent, avec un ensemble de variables explicatives
CUNI Frédéric, CORTYL Alexandre - A15
4
réduit à 6.
L’erreur quadratique moyenne sur l’ensemble de test généré est de : 480115.
1.2.3
Méthode du critère Cp
Comme pour la méthode du R 2 ajusté, nous utilisons au préalable la fonction leaps() qui
nous retourne TRUE si la variable est inclue dans le meilleur modèle. On obtient ainsi le
modèle suivant, composé de 9 variables :
Sal ar y = β0 +β1 ∗obp +β2 ∗homer uns +β3 ∗r bi s +β4 ∗sos +β5 ∗sbs +β6 ∗ f r eeag ent +
β7 ∗ ar bi t r at i on + β8 ∗ soser r or s + β9 ∗ sbsobp + ²
Ceci peut se confirmer en utilisant la fonction regsubsets(). On obtient la courbe ci-contre, représentant la
valeur du critère Cp en fonction du nombre de variables.
On constate que le minimum est atteint lorsque le
nombre de variables vaut 9, ce qui confirme la méthode précédente.
Le modèle obtenu ici est d’une complexité intermédiaire avec 9 variables explicatives retenues.
L’erreur quadratique moyenne sur l’ensemble de test généré est de : 473172.8.
1.2.4
Conclusion des trois modèles
Après l’analyse précédente, il convient de comparer les différents modèles obtenus et de
définir celui qui semble le plus adapté à l’explication du salaire d’un joueur de baseball.
En terme de "complexité" des modèles, on peut comparer le nombre de variables explicatives retenues par chacun : le plus simple est celui de la méthode BIC (avec 6 variables),
suivi du modèle de la méthode du critère Cp (avec 9 variables) et enfin le modèle de la
méthode du R² ajusté (avec 12 variables).
Il est aussi important de confronter les erreurs quadratique moyennes obtenus pour chaque
modèle : plus cette erreur est faible, plus le modèle est performant.
Ainsi, de ce point de vue, la méthode du R² ajusté est la meilleure (erreur quadratique
moyenne =444882,1), suivi de la méthode du critère Cp (erreur quadratique moyenne
=473172,8) et enfin la méthode BIC (erreur quadratique moyenne =480115).
Finalement, en prenant en compte les deux critères précédents, on décide de conserver
le modèle obtenu par la méthode du BIC, qui offre un nombre de variables explicatives
réduit, et une erreur quadratique moyenne convenable.
CUNI Frédéric, CORTYL Alexandre - A15
5
1.3 Validation croisée, Ridge et Lasso
La validation croisée est une alternative très populaire pour gérer la parcimonie des données. Il s’agit de découper le jeu de données en K groupes tirés aléatoirement qui font
successivement servir d’ensemble de test. On peut alors calculer une erreur de test pour
chacun des groupes et en faire la moyenne, ce qui constitue l’estimateur de l’erreur de test
par validation croisée.
Nous utiliserons deux méthodes de sélection de variables, qui sont Ridge et Lasso, que
nous appliqueront en lien avec la validation croisée. Ceci va nous permettre d’avoir une
estimation du paramètre λ minimum évalué pour chaque groupe de test généré par la
validqtion coirsée.
1.3.1
Méthode de Ridge
La régression de Ridge permet d’estimer d’estimer un modèle en présence de covariables
fortement corrélées. Elle permet de trouver la valeur du λmi n utilisé pour la sélection du
modèle.
Dans un premier temps, nous obtiendrons un ensemble de modèles composés chacun d’une valeur
de λ ainsi que le nombre de coefficient non nuls et le
pourcentage de déviance expliquée.
Afin de choisir le meilleur modèle, nous faisons une
cross-validation sur l’ensemble d’apprentissage pour
avoir le classement des différentes valeurs de lambda.
On obtient ainsi une valeur de λ minimum qui est de
96.4.
On obtient ainsi la figure ci-contre.
Avec le modèle sélectionné, nous obtenons une erreur quadratique moyenne de 375236.1.
CUNI Frédéric, CORTYL Alexandre - A15
6
1.3.2
Méthode de Lasso
La régression de Lasso est une méthode similaire
au la régression de Ridge. Cependant, elle met le
coefficient des variables peu importantes à 0 donc
nous allons obtenir un modèle réduit.
Nous obtenons une valeur de λ de 19.36 en faisant une
cross-validation sur l’ensemble des modèles obtenus
par la régression de Lasso.
Avec le modèle sélectionné, nous obtenons une erreur quadratique moyenne de 359435.2.
1.4 Conclusion
Pour conclure sur ces différentes méthodes de sélection de variables, nous regardons l’erreur quadratique moyenne obtenue sur les ensembles de tests. Nous obtenons le tableau
ci-dessous :
Ršad j
444882
BIC
480115
CP
473172
Ridge
375236
Lasso
359435
Nous remarquons que les méthodes de Ridge et Lasso permettent d’obtenir des erreurs
quadratiques moyennes sur l’ensemble de test moindre que les méthodes précédentes.
On voit que le Lasso permet un gain sur l’erreur comparé au Ridge. En effet, cette méthode permet de mettre à 0 les coefficients des variables estimées peu importantes, mais
en contrepartie, en présence de variables explicatives corrélées, le Lasso en choisit une arbitrairement et met les autres à 0.
Les effets de variables explicatives trés corrélées se combinent pour se renforcer mutuellement dans le cas de la régression de Rigde. Cependant, toutes les variables inclusent
initialement se retrouvent dans le modèle final. On a pas de moyen de savoir quelles variables sont plus importantes que d’autre.
2 Splines, modèles additifs généralisés
2.1 Exercice 1 : Données mcycle
Les données mcycle du package MASS contiennent des mesures d’accélération de la tête
d’un mannequin en fonction du temps, au cours d’une simulation d’accident de moto.
CUNI Frédéric, CORTYL Alexandre - A15
7
Le but principal de l’exercice est d’estimer la valeur moyenne de l’accélération en fonction
du temps grâce à différentes méthodes.
2.1.1
Régression polynomiale
La régression polynomiale permet d’expliquer les variables à l’aide d’une fonction polynomiale d’ordre p.
Nous traçons ainsi diverses fonctions polynomiales
d’ordre différents et nous les affichons ci-contre.
De l’observation de la représentation graphique, on
voie qu’en augmentant le degré du polynôme, on
converge vers une régression limite (p=15 et p=20 sont
relativement similaires). Cependant, il faut privilégier
les polynômes de degré inférieur pour des modèles
plus simple à interpréter.
On préfère donc sélectionner le modèle avec p=15.
Pour déterminer la valeur optimale de p, nous testons les différentes fonctions obtenues
par validation croisées et nous affichons pour chacune l’erreur de test commise. Nous
obtenons les valeurs ci-dessous, la première valeur correspond à l’ordre 1, la deuxième
l’ordre 2, ..., la sixième à l’ordre 20.
L’erreur est minimale pour la régression de degré 15. Par validation croisée, on conclut que
la valeur optimale de p est p = 15.
Nous faisons figurer ci-dessous notre code R. Dans la suite de l’exercice, par soucis de
rédaction, nous ne ferons pas apparaître le code spécifique à chaque étape, mais la même
méthodologie sera appliquée avec des adaptations nécessaires.
plot(mcycle)
title(main="Regressions polynomiale d’ordre p")
set.seed(1)
cv.error.6 <- rep(0, 6)
color <- c("black", "red", "green", "blue", "chocolate1", "deeppink")
deg <- c(1,3,5,10,15,20)
pos <- c(-60,-75,-90,-105,-120,-135)
for (i in 1:6){
glm.fit=glm(accel ~ poly(times, deg[i]), data= mcycle)
cv.error.6[i]=cv.glm(mcycle ,glm.fit ,K = 5)$delta[1]
points(times, predict(glm.fit), type = "l", col = color[i])
text(10, pos[i], paste("p=", deg[i]), col = color[i])
}
CUNI Frédéric, CORTYL Alexandre - A15
8
2.1.2
Splines cubiques
On procède maintenant à une régression avec les splines cubiques
naturelles, en faisant varier le degré
de liberté.
En prenant les mêmes ordres et
couleurs que précédemment, nous
obtenons la figure ci-contre.
Encore une fois, lorsque le degré de liberté df augmente, on semble converger vers une
régression limite. C’est encore la régression avec un degré de liberté df=15 que nous sélectionnons comme la plus satisfaisante visuellement. On remarque que l’utilisation de
splines par rapport à la régression logistique améliore globalement les modèles, ce qui est
particulièrement visible pour la régression à 10 degrés de liberté.
Pour le vérifier, nous faisons comme précédemment une validation croisée. Nous obtenons les erreurs de test ci-dessous, suivant toujours la même notation.
L’erreur est minimale pour la régression à 15 degrés de liberté. Mais on remarque que le
gain est moindre par rapport à la régression à 10 degrés de liberté. Par validation croisée,
on conclut que la valeur optimale de df est df = 10.
2.1.3
Splines de lissage
On utilise maintenant les splines de
lissage, et on détermine la valeur
optimale du degré de liberté par la
méthode LOOCV. Comme indiqué
sur e schéma ci-contre, on obtient
que le degré optimal est df = 13.
CUNI Frédéric, CORTYL Alexandre - A15
9
Ci-dessous, le code R utilisé pour obtenir ce résultat :
plot(mcycle)
title(main="Splines de lissage de degres df determine par LOOCV")
set.seed(1)
fit <- smooth.spline(mcycle, cv = TRUE)
points(fit, type = "l", col = "red")
text(10, -90, paste("df=", round(fit$df,2)), col = "red")
2.1.4
Synthèse
Nous pouvons voir ci-dessous les trois fonctions représentant chacune une des trois méthodes étudié ci-dessus avec le paramètre optimal. Le meilleur modèle tendrait à être les
splines cubiques (df=10) car on obtient une erreur moindre, avec toutefois un approchement des données très satisfaisant.
2.2 Exercice 2 : Données movie
Dans cet exercice, nous allons tenter d’expliquer les recettes d’un film à partir de divers
paramètres, en appliquant les GAM (Generalized Additive Models).
La fonction gam() est utilisée pour construire des modèles GAM (Generalized Additive
Models) en utilisant des splines de lissage, par une approche appelée “backfitting”.
Cette méthode construit un modèle composé de plusieurs predicteurs, en mettant à jour
CUNI Frédéric, CORTYL Alexandre - A15
10
répétitivement le modèle pour chaque predicteur, et en gardant les autres fixés.
On utilise aussi la fonction s(), appartenant au package gam, pour y intégrer des splines
de lissage avec différents degrés de liberté. La variable ACTION étant qualitative, nous la
laissons telle quelle.
Vu le nombre de variables explicatives, il est trop complexe de chercher l’expression optimale des prédicteurs pour expliquer la variable à prédire. On se contente d’étudier différentes expressions choisies ci-dessous. On fera figurer pour chacune les représentations
graphiques associées :
2.2.1
Prédiction de BOX
Modèle 1 : le plus simple sans aucun coefficient
BOX ∼ M P R AT I NG + BU DGE T + ST ARPOW R + BU Z Z + AC T I ON
Modèle 2 : avec des puissances
BOX ∼ pol y(M P R AT I NG, 3)+pol y(BU DGE T, 9)+pol y(ST ARPOW R, 8)+pol y(BU Z Z , 3)+
AC T I ON
CUNI Frédéric, CORTYL Alexandre - A15
11
Modèle 3 : avec des splines de lissage. Les coefficients ont été choisi avec la même méthode que dans l’exercice précédent (smooth-splines et LOOCV)
BOX ∼ s(M P R AT I NG, 3) + s(BU DGE T, 9) + s(ST ARPOW R, 8) + s(BU Z Z , 3) + AC T I ON
CUNI Frédéric, CORTYL Alexandre - A15
12
2.2.2
Prédiction de I(BOX > median(BOX))
Pour finir, on répète le travail précédent mais cette fois en cherchant à prédire si la valeur
du BOX est supérieur à la valeur médiane du jeu de données.
Modèle 1 : le plus simple sans aucun coefficient
I (BOX > med i an(BOX )) ∼ M P R AT I NG +BU DGE T +ST ARPOW R +BU Z Z + AC T I ON
Modèle 2 : avec des puissances
I (BOX > med i an(BOX )) ∼ pol y(M P R AT I NG, 3)+pol y(BU DGE T, 9)+pol y(ST ARPOW R, 8)+
pol y(BU Z Z , 3) + AC T I ON
CUNI Frédéric, CORTYL Alexandre - A15
13
Modèle 3 : avec des splines de lissage. Les coefficients ont été choisi avec la même méthode que dans l’exercice précédent (smooth-splines et LOOCV)
I (BOX > med i an(BOX )) ∼ s(M P R AT I NG, 3)+s(BU DGE T, 9)+s(ST ARPOW R, 8)+s(BU Z Z , 3)+
AC T I ON
CUNI Frédéric, CORTYL Alexandre - A15
14
2.2.3
Synthèse
On remarque que les performances sont globalement meilleure lorsque l’on passe à la
prédiction de I(BOX>median(BOX)). On a cependant toujours une déviance forte aux extrémités !
En comparant chacune des représentations graphique, on sélectionne la méthode numéro 3 comme la plus adaptée (splines de lissage).
Ceci est confirmé lorsqu’on affiche le résumé :
Finalement, on conclut de l’ensemble de l’étude précédente que les variables explicatives
peuvent être classées par ordre d’importance et d’influence : BUZZ, STARPOWR, BUDGET,
MPRATING et ACTION.
3 Conclusion
Pour conclure, ce troisième TP nous à permis dans un premier temps de consolider nos
connaissances sur la sélection de variables au travers diverses méthodes. On à ainsi pu
conclure que sur les données baseball, la méthode de sélection de variables donnant une
erreur moindre est la régression de Lasso. En effet, elle permet de mettre à 0 les coefficients
de variables estimées peu importantes et ainsi réduire le nombre de prédicteurs considérés et donc de simplifier considérablement le modèle.
Dans un second temps nous avons tenté d’expliquer la valeur moyenne de l’accélération
en fonction du temps sur les données mcycle du package MASS. Pour se faire, nous avons
utilisé trois méthodes : Régression polynomiale, Splines cubiques et splines de lissage.
Chacune permettant de fournir une fonction de prédiction du modèle.
Nous avons ainsi conclus qu’avec les splines cubiques nous obtenons une erreur de test
moindre que les autres méthodes.
Dans un dernier axe, nous avons étudié les modèles GAM (Generalized Additive Models)
qui nous permet de prédire les recettes à partir des autres variables.
CUNI Frédéric, CORTYL Alexandre - A15
15