Pratique du modèle linéaire (2) - lsta.upmc.fr · S´election de variables `0 Ridge et PCR Lasso...
Transcript of Pratique du modèle linéaire (2) - lsta.upmc.fr · S´election de variables `0 Ridge et PCR Lasso...
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Avant de commencer :
Se connecter a ma page ici et recuperer les transparents ici.
Creer un repertoire
Faire pointer R vers ce repertoire
Charger les jeux de donnees dans le repertoire creehttp://www.lsta.upmc.fr/guilloux.php?main=enseignement
Charger les packages ’HH’ et ’car’ (sur ma page)Polycopies pour aller plus loin :
Philippe Besse (exemples en SAS)
Jean-Marc Aza
¨
ıs et Jean-Marc Bardet
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Tests du Student et de Fisher
On se place dans le modele
Y = X� + ✏
avec ✏ ⇠ N ((0, . . . , 0)>,�2In) et X� 2 V = vect(X 1, . . . ,X p).
On veut selectionner les variables qui ont une influence sur Y , i.e.determiner les indices k 2 {1, . . . , p} pour lesquels �k 6= 0.
Si on veut tester H0
: �k = 0, on peut utiliser le test du Student de niveau
PH0
��� �j � �j
�2(X>X )�1
jj
�� > F�1
T (n�p)(1� ↵/2)�= ↵
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Tests du Student et de Fisher
Si on veut tester H0
: �k1
= . . . = �kl = 0, on pourrait utiliser lesstatistiques du Student mais le niveau pour un seuil s est alors donne par :
PH0
(H0
) = P��� �k
1
�2(X>X )�1
k1
k1
�� > s [ . . . [�� �kl
�2(X>X )�1
kl kl
�� > s)
P��� �k
1
�2(X>X )�1
k1
k1
�� > s�+ . . .+ P
��� �kl
�2(X>X )�1
kl kl
�� > s).
Pour garantir un niveau ↵, il faut prendre s = F�1
T (n�p)(1� ↵/(2l)) pour avoir :
PH0
(H0
) ↵l+ . . .+
↵l= ↵.
Mais la puissance de chaque test est alors assez mauvaise car
F�1
T (n�p)(1� ↵/(2l)) >> F�1
T (n�p)(1� ↵/(2)) si l >> 1.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Tests du Student et de Fisher
Pour tester H0
: �k1
= . . . = �kl = 0, on utilise le test de Fisher.
On note W = vect{(X1
, . . . ,Xp)/(Xk1
, . . . ,Xkl )} de dimension p � l .
On note X � = proj>W (Y ) et on a toujours X � = proj>V (Y ).
On ecrit
X � = proj?V (Y ) = proj?V (X� + ✏) = X� + proj?V (✏) et
X � = proj?W (Y ) = proj?W (X� + ✏) = proj?W (X�) + proj?W (✏)
= X� + proj?W (✏) seulement si H0
est vraie
Sous H0
, on a donc
Y � X � = ✏� proj?V (✏) = proj?V?(✏) et Y � X � = ✏� proj?W (✏) = proj?W?(✏).
On remarque que W ⇢ V et donc W? = V??LW?V et finalement
kY�X �k2�kY�X �k2 = k proj?W?(✏)k2�k proj?V?(✏)k2 = k proj?W?V (✏)k2.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Tests du Student et de Fisher
Le s.e.v. W?V est de dimension n � p � (n � p � l) = l , donc
(1/�2)k proj?W?V (✏)k2 ⇠ �2(l)
On peut donc definir la statistique de Fisher
(n � p)�kY � X �k2 � kY � X �k2)
lkY � X �k2⇠H0
F(l , n � p).
full=lm(cost ~cattle+sheep+calves+hogs,data=auction)
sans_calves_hogs=lm(cost ~cattle+sheep,data=auction)
f.test.lm(sans_calves_hogs,full)
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection pas a pas a partir du test de Fisher
Si le modele de depart a p variables, il y a #P{1, . . . , p} = 2p sous-modeles aexplorer. Il faut des algorithmes e�caces :
forward : on part du modele avec seulement l’intercept et on ajoute lesvariables une a une. A chaque pas, on ajoute celle qui a la plus grandestatistique de Fisher. On s’arrete quand la p-value associee devient > 0.5
backward : on part du modele avec toutes les variables et on retire lesvariables une a une. A chaque pas, on ajoute celle qui a la plus petitestatistique de Fisher. On s’arrete quand la p-value associee devient < 0.1
stepwise mixte des deux premieres (on ajoute, puis on permet uneelimination, etc)
Exercice : Coder une selection backward basee sur la statistique de Fisher pourle jeu de donnees Auction
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Modeles, vrai modele
On se donne une famille de modeles M, par exemple M = P{1, . . . , p}. Onsuppose qu’il existe un vrai modele m⇤ 2 M tel que :
Y = X (m⇤)�(m⇤
) + ✏⇤ avec ✏⇤ ⇠ N ((0, . . . , 0)>, (�m⇤)2In).
On veut retrouver m⇤.
Attention : le R2 n’est pas un bon critere pour ce probleme car il choisiratoujours le modele complet (avec toutes les covariables)
On note mtot le modele complet.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Estimation dans le modele m
Dans le modele m, on note |m| le nombre de covariables qu’il contient et
�(m) =�(X (m))>X (m)
��1
(X (m))>Y
Y (m) = X (m)�(m)
\(�m)2 =kY � Y (m)k2
2
n � |m|
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Risque quadratique
Le risque quadratique de Y (m) pour l’estimation de X ⇤�⇤ est donne par
E(kY (m) � X ⇤�⇤k2) = E(kY (m) � X (m)�(m)k2)| {z }
variance
+ kX (m)�(m) � X ⇤�⇤k2| {z }
biais
2
= �2|m|+ kX (m)�(m) � X ⇤�⇤k2
ou X (m)�(m) est la projection de X ⇤�⇤ sur vect(X (m)).
PROBLEME : le terme de biais est inconnu.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Calcul du terme de biais
On montre que
E(kY (m) � Y k2) = (n � |m|)�2 + kX (m)�(m) � X ⇤�⇤k2.
Finalement
E(kY (m) � X ⇤�⇤k2) = �2|m|� (n � |m|)�2 + E(kY (m) � Y k2)
= 2�2|m|+ E(kY (m) � Y k2)� n�2.
On approxime E(kY (m) � Y k2) par
kY (m) � Y k2 = (n � |m|)\(�m)2.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Cp de Mallows
On choisit mCp 2 M tel que :
mCp = argminm2M
Cp(m),
avec
Cp(m) =\(�m)2
\(�mtot )2
+ 2|m|n
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Cp de Mallows - risque quadratique
On choisit mCp 2 M tel que :
mCp = argminm2M
Cp(m),
avec
Cp(m) =\(�m)2
\(�mtot )2
+ 2|m|n
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
AIC/BIC - distance de Kullback
On choisit mAIC 2 M et mBIC 2 Mtel que :
mAIC = argminm2M
AIC(m),
mBIC = argminm2M
BIC(m),
avec
AIC(m) = log⇣\(�m)2
⌘+
2|m|+ 1n
BIC(m) = log⇣\(�m)2
⌘+
log(n)|m|n
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Illustration d’apres Aza
¨
ıs et Bardet
0 50 100 150
-400
-300
-200
-100
0
id
5 - 0
.03
* id
^2 +
2e-
04 *
id^3
- 3
* lo
g(id
)
Comparaison des prédictions : modèle total, backward par Fisher, AIC, BIC
---
VraieTotalBackwardAICBIC
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Selection de variable par minimisation de critere penalise
Illustration d’apres Aza
¨
ıs et Bardet
0 50 100 150
-400
-300
-200
-100
0
id
5 - 0
.03
* id
^2 +
2e-
04 *
id^3
- 3
* lo
g(id
)
Comparaison des prédictions : modèle total, backward par Fisher, AIC, BIC
---
VraieTotalBackwardAICBIC
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Introduction aux regressions penalisees et sur variables synthetiques
On observe Y et X de dimension n ⇥ p. On fait l’hypothese qu’il existe un vraimodele m⇤ tel que
Y = Xm⇤�m⇤
+ ✏m⇤= X ⇤�⇤ + ✏⇤,
et que |m⇤| est petit devant p et n.Quand p devient grand par rapport a n, il y a trois problemes potentiels :
� = (X>X )�1X>Y peut ne pas etre defini car X>X n’est alors plusinversible (c’est aussi le cas si des colonnes de X sont colineaires)
La variance d’estimation a partir de X devient trop grande. En e↵et, on adeja montre que
E(kX � � X ⇤�⇤k2) = p�2 + kX (m)�(m) � X ⇤�⇤k2 = p�2.
Les algorithmes de selection de variables `0
ne peuvent plus etre appliquesa cause des 2p modeles a comparer.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Introduction
La regression ridge et PCR (principal components regression) s’attaquent auxdeux premiers problemes :
la premiere en regularisant le probleme des moindres carres
la seconde en travaillant sur des variables synthetiques issues d’une PCA(APC).
Les deux ont de bonnes performances en prediction mais ont l’inconvenient deproduire des modeles di�cilement interpretables.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Definition
Hoerl et Kennard (1970) ont l’idee d’ajouter a X>X une matrice diagonale�Idn pour retrouver l’inversibilite pour
X>X + �Idn = PDP�1 + �Idp = P(D + �Idn)P�1.
Montrons que c’est equivalent a considerer la forme penalisee des moindrescarres.
Penalite ridge
�ridge
� = argmin�2Rp
kY � X�k2 + �pX
j=1
�2
j .
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Loi de l’estimateur ridge
On a alors
�ridge
� = (X>X+�Idp)�1X>Y = (X>X+�Idp)
�1X>X ⇤�⇤+(X>X+�Idp)�1X>✏⇤
donc sous l’hypothese gaussienne �ridge
� reste gaussien mais a pour moments
E�ridge
� = (X>X + �Idp)�1X>Y = (X>X + �Idp)
�1X>X ⇤�⇤
V�ridge
� = (X>X + �Idp)�1X>V(✏⇤)X (X>X + �Idp)
�1
= �2(X>X + �Idp)�1X>X (X>X + �Idp)
�1.
Il est donc biaise pour l’estimation de �⇤, de meme X �ridge
� est biaise pourl’estimation de X ⇤�⇤. On va montrer que meme si la regression ridge augmentele biais, elle peut diminuer le risque quadratique.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Propriete sur le risque quadratique
On connaıt le risque quadratique de l’estimateur des moindres carres
E(kX � � X ⇤�⇤k2) = p�2 + kX (m)�(m) � X ⇤�⇤k2 = p�2.
Calculons celui de pour la regression ridge
E(kX �ridge
� � X ⇤�⇤k2)
= E(kX (X>X + �Idp)�1X>X ⇤�⇤ + X (X>X + �Idp)
�1X>✏⇤ � X ⇤�⇤k2)
= E(kX (X>X + �Idp)�1X>X ⇤�⇤ � X ⇤�⇤k2) + E(kX (X>X + �Idp)
�1X>✏⇤k2)
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Propriete sur le risque quadratique
0 2 4 6 8 10
0.55
0.60
0.65
0.70
grille_lambda
risque_quadratique
ridgeMC
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Valeur des coe�cients
0 20 40 60 80 100
0.0
0.5
1.0
1.5
Coefficients
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
En pratique
Pour eviter les problemes d’echelle, on ajoute cette matrice diagonale �Idn a lamatrice X dont les colonnes ont ete au prealable renormalisees et pour unsignal Y recentre.
Exercice
On note
Y c = Y � Y
pour tout j = 2, . . . , p X j,S = Xj�¯
(Xj)
sd(Xj)
et X S = (X 2,S , . . . ,X p,S).
Ecrire la correspondance les moindres carres classiques argmin�2Rp
kY � X�k2 et les
moindres carres obtenus sur les variables renormalisees.
argmin�2Rp�1
kY c � X S�k2
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Dans l’estimateur des moindres carres obtenus sur les variables renormalisees,on remplace (X S)>X S par ((X S)>X S + �Idn). Montrons que c’est equivalent aconsiderer
Penalite ridge
�ridge
� = argmin�2Rp
kY c � X S�k2 + �pX
j=2
�2
j .
Exercice
Coder la regression ridge sur l’exemple simule du code ”code penalisation.R”.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Derniere chose : il faut choisir � par cross-validation.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Ridge
Propriete sur les variables correlees
Theoreme (Zou (2010)
On suppose que toutes les variables ont ete renormalisees. Pour deux variablesX j et X j0 , on a
1kY k |�
j,ridge� � �j0,ridge
� | 1�
q2(1� cor(X j ,X j0)).
Preuve au tableau.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Regression sur PC
En considerant X S , on peut decrire l’ACP via la formule
(X S)>X S = VD2V>
les colonnes de V sont les vecteurs propres de X S et egalement les composantesprincipales. La PCR consiste a regresser Y sur les m < p premierescomposantes principales.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Introduction
La regression ridge consiste a resoudre
�ridge
� = argmin�2Rp
kY � X�k2 + �pX
j=1
�2
j .
ce qui est equivalent a
�ridge
� = argmin�2Rp
kY � X�k2 s.c.pX
j=1
�2
j < t.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Introduction
-2 -1 0 1 2 3 4 5
-2-1
01
23
45
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Introduction
D’un autre cote, on peut voir la selection par Cp de Mallows
Cp(m) =\(�m)2
\(�mtot )2
+ 2|m|n
comme�Mallows
� = argmin�2Rp
kY � X�k2 + �k�k0
.
ce qui est equivalent a
�Mallows
� = argmin�2Rp
kY � X�k2 s.c. k�k0
< t.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Le lasso
Introduit en 1996 par Tibshirani, la lasso peut etre vu comme un intermediaireentre la regression ridge et la selection `
0
.
Penalite lasso
� lasso
� = argmin�2Rp
kY � X�k2 + �pX
j=1
|�j |
= argmin�2Rp
kY � X�k2 + �k�k1
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Le lasso
Exercice
Sur un design orthogonal, ecrire la solution lasso.
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
L’elastic net
Elastic net
�en
� = argmin�2Rp
kY � X�k2 + �1
k�k1
+ �2
k�k22
Pratique du modele lineaire (2)
Selection de variables `0
Ridge et PCR Lasso et elastic-net
Comparaison sur simulation
On utilise la librairie ”glmnet”. On veut comparer sur le modele
n=50
p=30
puis=c(0:9)
puis_petit=c(10:28)
beta=c(0.95^(puis),gamma^puis_petit)
X=cbind(matrix(rnorm(n*(p-1)),ncol=(p-1)))
epsilon=rnorm(n)
beta0=2
Y=beta0+X%*%beta+epsilon
les di↵erentes procedures d’estimation (Cp de Mallows, ridge, lasso, elastic net), en terme
de pouvoir de selection (taille du modele selectionne, sensibilite(TP/(TP+FN)), specificite (TN/(FP+TN)))
d’erreur d’estimation k� � �⇤kd’erreur de prevision kX � � X�⇤k
On peut faire varier la correlation entre les covaraibles via la fonction”covariates.matrix”.
Pratique du modele lineaire (2)