0% ont trouvé ce document utile (0 vote)
101 vues4 pages

Regression Logistique Cours Complet

Transféré par

Sene
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
101 vues4 pages

Regression Logistique Cours Complet

Transféré par

Sene
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours complet : Régression logistique

1. Introduction
La régression logistique est un modèle statistique utilisé pour prédire la probabilité d'un événement
binaire (0/1, oui/non) en fonction de variables explicatives. Elle est utilisée dans la médecine, le
marketing, la finance, l'informatique, etc.

Exemples :

• Prédire si un patient est atteint d'une maladie.


• Prédire si un client va acheter un produit.
• Prédire si un email est spam ou non.

2. Fonction logistique (sigmoïde)


Pour une combinaison linéaire des variables :

$$ z = \beta_0 + \beta_1 x_1 + ... + \beta_p x_p $$

La fonction logistique est :

$$ P(Y=1|X) = \frac{1}{1 + e^{-z}} = \sigma(z) $$

• Valeurs entre 0 et 1.
• Transforme les log-odds en probabilité.

Logit :

$$ \text{logit}(P) = \ln\left(\frac{P}{1-P}\right) = z $$

3. Estimation des coefficients

Méthode du maximum de vraisemblance (MLE)

Pour n observations :

$$ L(\beta) = \prod_{i=1}^n P(Y=y_i|X=x_i; \beta) = \prod_{i=1}^n [\sigma(z_i)^{y_i} (1-\sigma(z_i))^{1-y_i}]


$$

Maximisation du logarithme de vraisemblance :

$$ \ell(\beta) = \sum_{i=1}^n [ y_i \ln \sigma(z_i) + (1-y_i) \ln (1-\sigma(z_i)) ] $$

Algorithmes numériques : Newton-Raphson, Gradient descent.

1
4. Interprétation des coefficients
• βj : effet de xj sur le log-odds.
• eβj : odds ratio.

Exemple : β1 = 0.5 → e0.5 ≈ 1.65 . Chaque unité supplémentaire de x1 multiplie les chances par 1,65.

5. Hypothèses
1. Indépendance des observations.
2. Relation linéaire entre logit(P) et variables explicatives.
3. Absence de multicolinéarité élevée.
4. Taille d'échantillon suffisante.

6. Évaluation du modèle

Matrice de confusion

Prédit 1 Prédit 0

Réel 1 TP FN

Réel 0 FP TN

• Accuracy = (TP + TN)/n


• Precision = TP/(TP+FP)
• Recall = TP/(TP+FN)
• F1-score = 2*(Precision*Recall)/(Precision+Recall)

Courbe ROC et AUC

• ROC : TPR vs FPR


• AUC : 0.5 = hasard, 1 = parfait

Tests statistiques

• Wald test pour chaque coefficient : Z = β/SE(β) \~ N(0,1)


• Test global (likelihood ratio test)

7. Problèmes fréquents et solutions

Problème Solution

Multicolinéarité Retirer variables corrélées, PCA

Données déséquilibrées Sur-échantillonnage, sous-échantillonnage, SMOTE

2
Problème Solution

Valeurs extrêmes Standardisation ou transformation

Non-linéarité Ajouter polynômes ou transformations

8. Régression logistique multinomiale


Pour Y ∈ {1,2,...,K}, choisir une classe de référence :

$$ \log\frac{P(Y=k)}{P(Y=K)} = \beta_{0k} + \beta_{1k} x_1 + ... + \beta_{pk} x_p $$

Chaque classe a son vecteur de coefficients.

9. Exemples d'application

9.1 Médical : risque de diabète

• Variables : Âge, IMC


• Modèle : logit(P) = -7 + 0.05Âge + 0.1IMC
• Probabilité pour patient Âge=50, IMC=25 : P ≈ 0.12

9.2 Marketing : achat produit

• Variables : revenus, âge, temps sur site


• Coefficients : β_revenus=0.02, β_age=-0.01, β_temps=0.05
• Interprétation : plus le temps sur site augmente, plus la probabilité d'achat augmente.

9.3 Spam email

• Variables : nb_liens, nb_mots_spam, longueur_email


• Objectif : classifier email comme spam ou non
• Évaluation : ROC, précision, rappel

10. Implémentation Python

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, roc_auc_score,
classification_report

data = pd.DataFrame({
'Age':[45,34,60,50,23],
'IMC':[28,22,30,25,20],
'Diabete':[1,0,1,0,0]

3
})
X = data[['Age','IMC']]
y = data['Diabete']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4,
random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
proba = model.predict_proba(X_test)[:,1]
print(confusion_matrix(y_test, y_pred))
print(roc_auc_score(y_test, proba))
print(classification_report(y_test, y_pred))

11. Points essentiels


1. Prédiction de probabilités.
2. Coefficients → log-odds, exponentiés → odds ratio.
3. Évaluation via matrice de confusion, ROC/AUC, précision, rappel.
4. Hypothèses : indépendance, linéarité, absence multicolinéarité.
5. Pour plus de classes → régression multinomiale.
6. Pratique : prétraitement, standardisation, gestion des déséquilibres.

Vous aimerez peut-être aussi