Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
4. Régression logistique
• L'objectif est de prédire et/ou expliquer une variable catégorielle Y à partir d'une collection de
descripteurs ou variables explicatives X = (X1, X2, … ,Xp).
• Soit Y une variable catégorielle à deux modalités: Y = {y1 = 0, y2 = 1}
• On souhaite prédire la probabilité d'un individu ou observation d’appartenir à la classe yk
sachant les valeurs prises par les p descripteurs.
• Considérons p = 1 par exemple, peut-on modéliser avec une régression linéaire ?
• Non, pour quoi ?
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 4
5. Régression logistique
• Afin que p(X) soit comprise entre 0 et 1, on utilise la
fonction logistique
• L’estimation des coefficients β sera effectuée avec la
méthode du maximum de vraisemblance
• Après manipulation on retrouve le rapport de
chances (odds):
• un individu avec un odds P(Y=1|X) / P(Y=0|X) = 2 a deux
fois plus de chance d‘appartenir à la classe Y=1 qu’à la
classe Y=0.
• Et finalement la fonction logit (log-odds), linéaire et
additive
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 5
appelée également score et
notée ො𝜋(𝜔)
6. Régression logistique
• Soit les données « Credit ». On souhaite prédire
la probabilité de défaut de paiement (Y=1)
sachant les valeurs d’une variable explicative X1
ou « Balance »
• On suppose que l’on a construit le modèle avec
la fonction R glm(), d’où les résultats suivants
• Calculer la probabilité de défaut pour Balance=
1000 dollars: P(Y=1|X1=1000)
• Calculer la probabilité de défaut pour Balance=
2000 dollars: P(Y=1|X1=2000)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 6
7. Régression logistique
• Calculer la probabilité de défaut pour Balance=
2000 dollars: P(Y=1|X1=2000)
• Calculer le rapport de chances correspondant:
• 0.586 / (1 - 0.586) = 1.41
• 1.41 ~ 4/3 => « 3 contre 4 »
◦ 3 chances de ne pas faire défaut (3 chances de « perdre »)
◦ 4 chances de faire défaut (4 chances de « gagner »)
• Quelle valeur de Balance donne une probabilité
de défaut de paiement de 50% ?
• log(0.5 / (1 – 0.5)) = -10.6513 + 0.0055 X
• X = 1936.6 dollars
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 7
8. Régression logistique
• Interprétation de la fonction logit ou log-odds
• lorsque X varie d’une unité le log-odds varie de 𝛽1
• et pas p(X) !!
• On constate quand même que la relation entre
p(X) et X n’est pas une ligne droite
• La variation de p(X) due à la variation d’une
unité de X dépend de la valeur de X
• Cependant, quelque soit la valeur de X
• si 𝜷 𝟏> 0 alors une augmentation de la valeur de X
entraîne une augmentation de p(X)
• si 𝜷 𝟏< 0 alors une augmentation de la valeur de X
entraîne une diminution de p(X)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 8
9. Régression logistique
Cas des variables catégorielles
• On souhaite prédire la probabilité de défaut de
paiement (Y=1) sachant les valeurs d’une
variable explicative X1, ici « Student »
• On suppose que l’on a construit le modèle avec
la fonction R glm(), d’où les résultats suivants
• Calculer la probabilité de défaut pour un
étudiant: P(Y=1|X1=Yes)
• Calculer la probabilité de défaut pour non-
étudiant: P(Y=1|X1=No)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 9
après codage en student[Yes] = {0, 1}
10. Régression logistique
• Données HEART: 270 obs x 13 colonnes
• Train (70%) : 189 observations dont 80 réellement positifs (42.3%)
• Test (30%) : 91 observations
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 10
risque de maladie
le modèle NULL c’est celui qui retournera toujours
la moyenne des positifs comme la meilleure
estimation de la probabilité d’être positif.
11. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 11
Lecture des informations analogue à celle de la
régression linéaire.
Remarquez que l’on effectue le calcul d’une
statistique Z au lieu d’une statistique t ou Student.
Comme pour la régression linéaire, les prédictions
peuvent être bonnes en présence de variables
corrélées mais ces corrélations peuvent avoir un
effet négatif lors de l’interprétation et les conseils à
donner pour la prise de décision.
12. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 12
𝜋 = 𝑃 𝑌 = 𝑇𝑅𝑈𝐸 𝑋)
1 - 𝜋 = 𝑃 𝑌 = 𝐹𝐴𝐿𝑆𝐸 𝑋)
pour une observation 𝜔 la probabilité P[Y(𝜔)|X(𝜔)]
suit une loi binomiale 𝓑(𝟏, 𝝅)
Comment sont calculés les coefficients ? (1/4)
13. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 13
Comment sont calculés les coefficients ? (2/4)
La vraisemblance (L ou likelihood) d’un échantillon
ou d’un ensemble d’observations sera alors égale au
produit des probabilités P[Y(𝜔)|X(𝜔)]
on simplifie l’écriture
14. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 14
Comment sont calculés les coefficients ? (3/4)
On préfère utiliser la log-vraisemblance (LL ou log-
likelihood)
fonction négative, elle varie entre −∞ et 0 !!
Ce sont les coefficients qui maximisent LL
méthode de « maximum de vraisemblance »
15. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 15
Comment sont calculés les coefficients ? (4/4)
On peut également dire que l’on cherche à estimer les
valeurs des coefficients qui minimisent la déviance D:
fonction positive,
appelée aussi residual deviance
• La fonction LL est convexe: il existe une solution unique,
mais pas de solution analytique; il faut passer par des
heuristiques.
• Les logiciels s’appuient sur l’algorithme de Newton-Ralph
ou de ses variantes (Fisher Scoring)
16. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 16
D0 = -2 LL0 est la null deviance, calculée sur le modèle
uniquement composé de la constante.
• peut être interprétée comme la variance des données
autour de la proportion d’individus positifs.
DM = -2 LLM est la residual deviance, calculée sur le
modèle obtenu.
• peut être interprétée comme la variance des données
autour du modèle.
La réduction de la déviance est-elle
significative ou due au hasard ?
on doit effectuer un test chi-2
Il faut connaître les degrés de liberté du modèle NULL et
du modèle obtenu
• df.null = nb obs. – 1 = 189 – 1 = 188
• df.model = nb obs. – nb de coefficients = 189 – 19 = 170
17. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 17
D0 = -2 LL0 est la null deviance, calculée sur le modèle
uniquement composé de la constante.
• peut être interprétée comme la variance des données
autour de la proportion d’individus positifs.
DM = -2 LLM est la residual deviance, calculée sur le
modèle obtenu.
• peut être interprétée comme la variance des données
autour du modèle.
Le Pseudo R2 de McFadden
Analogue au R2 de la régression linéaire, elle
mesure combien (%) de déviance est expliquée par
le modèle
si elle est basse alors on peut dire que le modèle n’est pas
très prédictif, on n’a pas encore identifié toutes les facteurs
qui prédisent le risque de maladie
18. Régression logistique
fit.glm <- glm(formula = class ~ ., family = binomial(link="logit"), data = df.train)
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 18
AIC d’Akaike
Pour effectuer une sélection de modèle: trouver un sous-
ensemble de variables qui minimise un critère qui ne peut
pas être la déviance, car elle diminue si l’on rajoute des
variables. C’est un critère qui comptabilise la qualité de
l’ajustement, par un indicateur qui comptabilise la
complexité du modèle.
Fisher scoring iterations
La méthode Fisher scoring est une optimisation itérative
semblable à la méthode de Newton utilisée dans glm()
afin de trouver les coefficients du modèle. Il devrait
converger en moins de 9 itérations, sinon peut être qu’elle
n’a pas convergée et que le modèle n’est pas valide.
nb de variables
19. Régression logistique
df.train$pred <- predict(fit.glm, newdata = df.train, type="response")
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 19
retourne les probabilités
distribution des deux classes, on
cherche à ce qu’elles soient séparées
ggplot(data = df.train, aes(x = pred, color=class, lineType=class)) +
geom_density()
si les distributions sont bien séparées
alors on peut choisir UN SEUIL dans
« la vallée » entre les deux pics.
20. Régression logistique
• Matrice de confusion
• Précision et Rappel
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 20
VRAI
PREDICTION
a: vrais positifs b: faux négatifs
c: faux positifs d: vrais négatifs
à partir des données d’apprentissage, on cherche UN SEUIL DE PROBABILITE à partir
duquel on classera positif un individu, et ainsi, pour les données de test, on pourra
construire la matrice de confusion et en extraire la précision et le rappel du classifieur
compromis
21. Régression logistique
• Déterminer le seuil
• On calcule le score ො𝜋(𝜔) de chaque
observation de l’ensemble
d’apprentissage à l’aide du modèle
de prédiction.
• Pour toutes les valeurs de seuil
possibles (entre 0 et 1) on génère
une matrice de confusion et on en
extrait la précision et le rappel.
• On affiche respectivement la
précision et le rappel en fonction des
valeurs de seuil possibles.
• Ensuite, c’est le métier (la
responsabilité) qui décide du niveau
de précision et de rappel acceptable
afin de déterminer le seuil.
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 21
une précision juste au-dessus de
80%, donc un ratio de de vrais
positifs sur tous les réellement
positifs est-il acceptable ?
un rappel de 75%, donc un ratio
de vrais positifs sur tous les
positifs classés par le modèle
est-il acceptable ?
si oui, voici le seuil à prendre
pour valider le modèle
22. Régression logistique
• Courbe ROC / AUC
• La courbe ROC met en relation le taux de vrais positifs TVP et le taux de faux positifs TFP dans un
graphique nuage de points. Ci-dessous deux situations extrêmes:
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 22
• Le critère AUC (area under the curve)
caractérise numériquement la courbe ROC en
calculant la surface située sous la courbe.
• Elle exprime la probabilité de placer un
individu positif devant un négatif.
Rakotomalala R., Pratique de la Régression Logistique, Université Lumière de Lyon 2, 2014
23. Régression logistique
• Construction de la courbe ROC
1. On calcule le score ො𝜋(𝜔) de chaque observation 𝜔
à l’aide du modèle de prédiction
2. Trier les scores calculées précédemment dans
l’ordre décroissant
3. Chaque valeur du score peut être potentiellement
un seuil s. Pour toutes les observations dont le
score est supérieur à s (donc la partie haute du
tableau), on compte le nombre de positifs n+(s) et
le nombre de négatifs n-(s) .
4. On en déduit
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 23
vraie classe
prédiction
(triée)
n+(s)=6, n-(s)=14
RakotomalalaR.,PratiquedelaRégressionLogistique,UniversitéLumièredeLyon2,2014
24. Régression logistique
• Construction de la courbe ROC
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 24
vraie classe
prédiction
(triée)
RakotomalalaR.,PratiquedelaRégressionLogistique,UniversitéLumièredeLyon2,2014
Rakotomalala R., Pratique de la Régression Logistique, Université Lumière de Lyon 2, 2014
25. Bibliographie
[1] James and al., An introduction to Statistical Learning, ISBN 9781461471370, Springer, 2014
[2] Hastle T., Qian J., Glmnet vignette, Stanford, 18 février 2015
[3] Rakotomalala R., Pratique de la Régression Logistique, Université Lumière de Lyon 2, février
2014
6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 25