Données binaires et régression logistique

Modèles linéaires généralisés en Python

Ita Cirovic Donev

Data Science Consultant

Données de réponse binaire

  • Réponse à deux classes $\rightarrow \large{\texttt{\color{#079EA1}{0},\color{#ED715F}{1}}}$

Exemples :

  • Cote de crédit $\rightarrow \texttt{\color{#ED715F}{"Défaut"}/\color{#079EA1}{"Sans défaut"}}$
  • Réussite d'un examen $\rightarrow \texttt{\color{#079EA1}{"Réussite"}/\color{#ED715F}{"Échec"}}$
  • Détection de fraude $\rightarrow \texttt{\color{#ED715F}{"Fraude"}/\color{#079EA1}{"Aucune fraude"}}$
  • Choix d'un produit $\rightarrow \texttt{\color{#2485F2}{"Produit ABC"}/\color{#F2AC30}{"Produit XYZ"}}$
Modèles linéaires généralisés en Python

Données binaires

NON GROUPÉES

  • Événement unique
  • Lancer une pièce
  • Deux issues possibles : 0/1
  • $Bernoulli(p)$ ou
  • $Binomial(n=1,p)$

GROUPÉES

  • Événements multiples
  • Lancer plusieurs pièces
  • Nombre de succès sur $n$ essais
  • $Binomial(n,p)$
Modèles linéaires généralisés en Python

Fonction logistique

Nuage de points : heures d'étude et réponse réussite/échec (0/1)

Modèles linéaires généralisés en Python

Fonction logistique

Nuage de points : heures d'étude et réponse réussite/échec (0/1)

  • Résultat de l'examen : $PASS=1$ ou $FAIL=0$

  • Objectif : modéliser

$P(y=1)=\beta_0 + \beta_1x_1$

$P(\text{Pass})=\beta_0 + \beta_1 \times \text{Hours of study}$

Modèles linéaires généralisés en Python

Fonction logistique

Ajustement logistique : heures d'étude et réponse réussite/échec (0/1)

  • Résultat de l'examen : $PASS=1$ ou $FAIL=0$

  • Objectif : modéliser

$P(y=1)=\beta_0 + \beta_1x_1$

$P(\text{Pass})=\beta_0 + \beta_1 \times \text{Hours of study}$

  • Utiliser la fonction logistique

$f(z) = \frac{1}{(1+\exp(-z))}$

Modèles linéaires généralisés en Python

Cotes et ratio des cotes

       

$$ ODDS = \frac{\text{événement qui se produit}}{\text{événement qui NE se produit PAS}} $$

       

$$ \text{RATIO DES COTES} = \frac{odds 1}{odds 2} $$

Modèles linéaires généralisés en Python

Exemple de cotes

  • 4 parties 3 victoires et 1 défaite en séquence

  • Cotes de 3 contre 1 Calcul visuel des cotes : 3 cases « victoire » au numérateur et 1 case « défaite » au dénominateur.

Modèles linéaires généralisés en Python

Cotes et probabilités

  $$ \text{odds} \neq \text{probability} $$

  $$ \text{odds} = \frac{\text{probability}}{1-\text{probability}} $$

  $$ \text{probability} = \frac{\text{odds}}{1+\text{odds}} $$

Modèles linéaires généralisés en Python

Du modèle de probabilité à la régression logistique

 

Étape 1. Modèle de probabilité

$E(y)=\mu=P(y=1)=\beta_0 + \beta_1x_1$

 

Étape 2. Fonction logistique

$f(z) = \large{\frac{1}{(1+\exp(-z))}}$

 

Étape 3. Appliquer la fonction logistique $\rightarrow$ INVERSE-LOGIT

$\mu = \large{\frac{1}{1+\exp(-(\beta_0+\beta_1x_1))}} = \large{\frac{\exp(\beta_0+\beta_1x_1)}{1+\exp(\beta_0+\beta_1x_1)}}$

$1-\mu = \large{\frac{1}{1+\exp(\beta_0+\beta_1x_1)}}$

Modèles linéaires généralisés en Python

Du modèle de probabilité à la régression logistique

 

  • Probabilité $\rightarrow$ cotes $$ ODDS=\frac{\mu}{1-\mu} = exp{(\beta_0+\beta_1x_1)} $$  
  • Transformation logarithmique $\rightarrow \color{#CF5383}{\text{RÉGRESSION LOGISTIQUE}}$

  $$ LOGIT(\mu)=log(\frac{\mu}{1-\mu}) = \beta_0+\beta_1x_1 $$

Modèles linéaires généralisés en Python

Régression logistique en Python

Fonction - glm()

model_GLM = glm(formula = 'y ~ x',                        
                data = my_data, 
                family = sm.families.Binomial()).fit

Entrée

y = [0,1,1,0,...]
y = ['No','Yes','Yes',...]
y = ['Fail','Pass','Pass',...]
Modèles linéaires généralisés en Python

Passons à la pratique !

Modèles linéaires généralisés en Python

Preparing Video For Download...