5.3 Régression logistique

12 vues

Publié le

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.

Publié dans : Données & analyses
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
12
Sur SlideShare
0
Issues des intégrations
0
Intégrations
0
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

5.3 Régression logistique

  1. 1. Régression Logistique 6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 1
  2. 2. Objectifs  xxx.  6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 2
  3. 3. Sommaire • • Bibliographie 6/30/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - RÉGRESSION LOGISTIQUE 3
  4. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×