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 binaires

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

Exemples :

  • Notation de crédit $\rightarrow \texttt{\color{#ED715F}{"Default"}/\color{#079EA1}{"Non-Default"}}$
  • Réussite à un test $\rightarrow \texttt{\color{#079EA1}{"Pass"}/\color{#ED715F}{"Fail"}}$
  • Détection de fraude $\rightarrow \texttt{\color{#ED715F}{"Fraud"}/\color{#079EA1}{"No-Fraud"}}$
  • Choix d'un produit $\rightarrow \texttt{\color{#2485F2}{"Product ABC"}/\color{#F2AC30}{"Product XYZ"}}$
Modèles linéaires généralisés en Python

Données binaires

NON GROUPÉ

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

GROUPÉ

  • É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ésultat réussir/échouer au test (0/1)

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

Fonction logistique

Nuage de points : heures d'étude et résultat réussir/échouer au test (0/1)

  • Résultat du test : $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ésultat réussir/échouer au test (0/1)

  • Résultat du test : $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 (odds) et rapport des cotes

       

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

       

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

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

Exemple de cotes (odds)

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

  • Cotes : 3 contre 1 Calcul visuel des cotes avec 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 (odds) et probabilités

  $$ \text{odds} \neq \text{probabilité} $$

  $$ \text{odds} = \frac{\text{probabilité}}{1-\text{probabilité}} $$

  $$ \text{probabilité} = \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...