Expliquer une probabilité
Régression logistique avec les données Titanic
À la fin de la matinée
Vous saurez expliquer une probabilité, interpréter un rapport de cotes et évaluer un modèle sans confondre classement, calibration et décision.
3 minutes. Annoncer que la présentation reste le fil conducteur jusqu’à 12 h 15 et que trois missions produiront une fiche modèle.
Une matinée, trois productions
Contester une explication simple
Recoder sans changer les prédictions
Évaluer et choisir un seuil
Chaque mission ajoute une preuve et une limite à la fiche finale.
2 minutes. Montrer le trajet, sans détailler les notions.
Une probabilité de 0,70 signifie-t-elle que la personne survivra?
Votez, puis précisez ce qui manque pour répondre.
5 minutes. Faire voter oui, non ou cela dépend. Faire émerger modèle, population, calibration et moment de l’observation.
Un jeu facile à lire, mais limité
titanic_train contient 891 passagers et 12 variables.
survie enregistrée;
classe;
sexe;
âge;
tarif;
proches à bord.
Il s’agit d’un échantillon d’apprentissage, pas d’un manifeste complet.
2 minutes. Présenter le fichier comme outil pédagogique, sans raconter une histoire historique non documentée.
[Sources] - https://CRAN.R-project.org/package=titanic
Une ligne, une réponse, un événement
Unité
un passager de l’échantillon
Réponse
survie, codée 0 ou 1
Événement positif
survecu
Population immédiate
les 891 lignes observées
La catégorie majoritaire atteint déjà 61,6 %
verite n proportion
1 non_survecu 549 0.6161616
2 survecu 342 0.3838384
Une exactitude doit être comparée à une règle simple.
4 minutes. Demander la prédiction d’une règle qui répond toujours non_survecu. Insister: exactitude élevée ne signifie pas probabilités utiles.
Les proportions diffèrent selon le sexe enregistré
La classe structure aussi les proportions
Décrire n’est pas expliquer causalement
Les différences observées peuvent refléter:
des règles et pratiques historiques;
des caractéristiques liées entre elles;
des variables absentes;
la construction de l’échantillon;
des valeurs manquantes.
Le modèle décrit des associations conditionnelles dans les données.
L’âge manque pour 177 passagers
lignes age_manquant lignes_completes
1 891 177 714
L’analyse en cas complets est simple, mais elle change l’échantillon.
Une droite peut sortir de l’intervalle
Une régression linéaire sur une réponse 0 ou 1:
peut prédire moins de 0 ou plus de 1;
impose une variance constante;
ignore la saturation près de 0 et de 1.
Nous gardons un prédicteur linéaire, mais nous changeons d’échelle.
La réponse suit une loi de Bernoulli
\[
Y_i \mid X_i \sim \operatorname{Bernoulli}(p_i)
\]
Pour chaque profil \(X_i\) :
\(Y_i\) vaut 0 ou 1;
\(p_i\) est une probabilité conditionnelle;
la variance dépend de \(p_i\) .
2 minutes. Ne pas développer la fonction de masse. Faire distinguer réponse observée et probabilité non observée.
[Sources] - https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Binomial.html
Probabilité, cote et log-cote
\[
\text{cote} = \frac{p}{1-p}
\qquad
\text{logit}(p) = \log\left(\frac{p}{1-p}\right)
\]
0,20
0,25
-1,39
0,50
1,00
0
0,80
4,00
1,39
3 minutes. Faire calculer oralement la cote pour 0,75.
[Sources] - https://stat.ethz.ch/R-manual/R-devel/library/stats/help/family.html
Une cote de 3 n’est pas une probabilité de 3
\[
p = \frac{\text{cote}}{1+\text{cote}}
\]
Une cote de 3 correspond à une probabilité de 0,75.
Une cote de 0,5 correspond à une probabilité d’environ 0,33.
La fonction logistique borne les prédictions
Le modèle est linéaire sur la log-cote
\[
\log\left(\frac{p_i}{1-p_i}\right)
= \beta_0 + \beta_1 X_{i1} + \cdots + \beta_k X_{ik}
\]
Puis:
\[
p_i = \frac{\exp(\eta_i)}{1+\exp(\eta_i)}.
\]
2 minutes. Dire que « linéaire » concerne l’échelle logit, pas directement la probabilité.
[Sources] - https://www.statlearning.com/ - https://stat.ethz.ch/R-manual/R-devel/library/stats/help/family.html
La vraisemblance remplace les moindres carrés
glm() choisit les coefficients qui rendent les réponses observées les plus plausibles sous le modèle.
survivant avec probabilité élevée: contribution favorable;
non-survivant avec probabilité faible: contribution favorable;
prédiction confiante et fausse: forte pénalité.
2 minutes. Ne pas dériver. Comparer seulement le principe avec les moindres carrés du jour 1.
[Sources] - https://stat.ethz.ch/R-manual/R-devel/library/stats/html/glm.html
Les catégories de référence organisent la comparaison
Dans le modèle commun:
homme est la référence pour sexe;
3e est la référence pour classe;
l’âge s’interprète par année;
le tarif s’interprète par unité monétaire.
Un coefficient catégoriel n’existe pas sans catégorie de référence.
Le jeu test reste fermé
# A tibble: 2 × 3
ensemble n proportion_survecu
<chr> <int> <dbl>
1 Entraînement 535 0.406
2 Test 179 0.408
Le modèle apprend sur 535 lignes et sera évalué sur 179 lignes réservées.
3 minutes. Demander ce qui arrive si l’on modifie la formule après avoir vu les résultats du test.
[Sources] - https://www.tmwr.org/splitting.html
Mission 1: la classe suffit-elle?
En 25 minutes, produisez:
un graphique à l’intérieur des classes;
un tableau sur les âges manquants;
deux formules candidates;
un verdict de quatre phrases.
Ouvrir la mission 1
25 minutes. Donner l’affirmation « tout s’explique par la classe ». À 10 minutes, vérifier la comparaison stratifiée. À 18 minutes, faire distinguer modèle principal et interaction à évaluer. À 22 minutes, imposer la rédaction.
Débrief: persistance n’est pas causalité
\[
\text{survie}
\sim
\text{sexe}
+ \text{classe}
+ \text{âge}
+ \text{tarif}
\]
Nous cherchons des associations conditionnelles lisibles, pas le modèle historique définitif.
L’écart associé au sexe enregistré persiste dans chaque classe, mais son ampleur varie. L’interaction sexe * classe devient une hypothèse à évaluer, pas une conclusion automatique.
10 minutes. Faire réfuter l’explication unique par la classe, puis demander ce que les comparaisons stratifiées ne contrôlent toujours pas. Confirmer le modèle principal, les références homme et 3e, et conserver l’interaction comme extension.
Un appel suffit pour ajuster
modele_logistique <- glm (
survie ~ sexe + classe + age + tarif,
data = entrainement,
family = binomial ()
)
family = binomial() utilise le lien logit par défaut.
3 minutes. Montrer la formule et le jeu d’entraînement. Ne pas lire toute la sortie summary.
[Sources] - https://stat.ethz.ch/R-manual/R-devel/library/stats/html/glm.html
L’exponentielle donne les rapports de cotes
sexefemme
11.46
7.18
18.29
classe2e
3.81
2.20
6.60
classe1re
12.15
5.70
25.86
age
0.96
0.95
0.98
tarif
1.00
1.00
1.01
« Identiques » doit être plausible
Pour sexefemme:
À classe, âge et tarif identiques, les cotes de survie enregistrée des femmes sont estimées à environ 11.5 fois celles des hommes.
Ce nombre n’est pas une différence de probabilités.
Le tarif est répété pour plusieurs personnes partageant un numéro de billet. Il ne mesure pas automatiquement la richesse personnelle. Comme la classe et le tarif sont liés, leur comparaison conditionnelle repose sur la zone où leurs valeurs se chevauchent.
4 minutes. Faire lire la phrase et demander ce que « identiques » couvre vraiment. Comparer oralement le rapport de cotes de la 1re classe, environ 12,1 avec tarif et 14,1 sans tarif. Préciser que les VIF restent sous 2 ici, sans garantir un support riche pour tous les profils.
Dix années donnent une unité plus lisible
# A tibble: 2 × 2
comparaison rapport_cotes
<chr> <dbl>
1 1 année 0.963
2 10 années 0.688
L’unité d’interprétation doit être substantiellement compréhensible.
Le même rapport de cotes produit des écarts différents
# A tibble: 2 × 2
profil probabilite
<chr> <dbl>
1 Homme, 3e classe 0.0862
2 Femme, 3e classe 0.520
Significativité, importance et prédiction
Rapport de cotes
taille et direction conditionnelles
Intervalle
incertitude d’estimation
Valeur p
compatibilité avec l’absence d’association
Jeu test
performance hors échantillon
Calibration
qualité des probabilités
Aucun élément ne répond seul à toutes les questions.
Mission 2: changer le codage
En 25 minutes, produisez:
deux paramétrisations comparées;
une vérification des probabilités;
deux profils inédits;
un mémo corrigé.
Ouvrir la mission 2
25 minutes. À 8 minutes, vérifier la référence 1re et l’âge par dix ans. À 15 minutes, faire calculer la différence maximale entre les probabilités. À 21 minutes, faire corriger le mémo.
Pause
Revenez avec une phrase:
Un coefficient peut changer sans que les prédictions…
Les probabilités sont évaluées sur le test
predictions_test <- test |>
mutate (
probabilite_survie = predict (
modele_logistique,
newdata = test,
type = "response"
)
)
Une probabilité élevée n’est pas une certitude. Sa qualité doit être vérifiée.
Le seuil fabrique une classe
\[
\widehat{Y} =
\begin{cases}
\text{survecu}, & \widehat{p} \ge s,\\
\text{non_survecu}, & \widehat{p} < s.
\end{cases}
\]
Changer \(s\) ne change pas les probabilités, seulement les classes.
4 minutes. Faire voter pour 0,30, 0,50 ou 0,70 avant de donner un mandat.
La matrice nomme quatre résultats
Truth
Prediction non_survecu survecu
non_survecu 85 15
survecu 21 58
4 minutes. Faire pointer vrais positifs, faux positifs, vrais négatifs et faux négatifs.
Chaque mesure change de dénominateur
Exactitude
toutes les observations
Sensibilité
survivants enregistrés
Spécificité
non-survivants enregistrés
Précision
prédictions positives
Monter le seuil change le compromis
Mission finale: évaluer et choisir
En 25 minutes:
évaluez le seuil 0,50;
comparez 0,30, 0,50 et 0,70;
examinez ROC et calibration;
consignez le seuil, le mandat et une limite.
Le Brier et la fiche en six phrases seront repris collectivement après la mission.
Ouvrir la mission finale
25 minutes. À 12 minutes, imposer le choix d’un mandat. À 20 minutes, faire consigner le seuil, l’erreur davantage acceptée et une limite.
La courbe ROC parcourt tous les seuils
3 minutes. Expliquer les axes. Ne pas présenter la courbe comme un seuil choisi.
[Sources] - https://doi.org/10.1016/j.patrec.2005.10.010
L’aire ROC mesure un classement
# A tibble: 1 × 3
.metric .estimator .estimate
<chr> <chr> <dbl>
1 roc_auc binary 0.863
Elle compare le score d’un positif et celui d’un négatif choisis au hasard.
Elle ne garantit ni calibration, ni seuil utile, ni causalité.
2 minutes. Demander ce qu’une AUC élevée ne dit pas.
[Sources] - https://doi.org/10.1016/j.patrec.2005.10.010
La calibration vérifie les probabilités
3 minutes. Préciser que cinq groupes sur 179 lignes donnent un diagnostic exploratoire.
[Sources] - https://doi.org/10.1186/s12916-019-1466-7
Le Brier pénalise les probabilités fausses
brier_modele brier_reference
1 0.1391384 0.241508
Le modèle réduit l’erreur quadratique par rapport à une probabilité constante.
Discrimination et calibration restent deux propriétés distinctes.
2 minutes. Comparer 0.139 à 0.242. Ne pas donner de seuil universel de qualité.
[Sources] - https://doi.org/10.1186/s12916-019-1466-7
Un appel réussi ne suffit pas
Vérifiez:
unité, événement et population;
indépendance suffisante des observations;
forme linéaire sur le logit;
absence de séparation complète;
stabilité des coefficients et cas influents;
performance sur des données réservées;
pertinence pour l’usage visé.
3 minutes. Préciser que la normalité des prédicteurs n’est pas requise. Mentionner interactions et splines comme extensions.
[Sources] - https://stat.ethz.ch/R-manual/R-devel/library/stats/html/glm.html - https://www.statlearning.com/
La fiche modèle en six phrases
Unité, échantillon et réponse
Prédicteurs et valeurs manquantes
Association conditionnelle
Discrimination et calibration
Seuil, mandat et erreur acceptée
Limite historique, causale ou de transfert
4 minutes. Faire rédiger puis lire deux fiches. Refuser toute formulation de règle réelle de sauvetage.
Sept questions avant de conclure
Quel événement est positif?
Quelle population est couverte?
Comment les valeurs manquantes sont-elles traitées?
Quelles sont les références?
Le test est-il resté fermé?
Classement et calibration sont-ils suffisants?
Quel seuil, quelle erreur et quelle limite?
3 minutes. Billet de sortie: une notion utile et une conclusion désormais refusée. Terminer à 12 h 15.