library(tidymodels)
library(broom)
titanic_analyse <- titanic_eiom |>
drop_na(age, tarif, sexe, classe)
set.seed(2026)
partage <- initial_split(
titanic_analyse,
prop = 0.75,
strata = verite
)
entrainement <- training(partage)
test <- testing(partage)
modele_original <- glm(
survie ~ sexe + classe + age + tarif,
data = entrainement,
family = binomial()
)Mission 2: changer le codage sans changer les prédictions
Références, unités et audit d’un mémo logistique
Votre mandat
Une collègue a réajusté le modèle après avoir choisi la 1re classe comme référence et exprimé l’âge par tranches de dix ans à partir de 30 ans. Elle croit que les signes différents de certains coefficients prouvent que le modèle et ses prédictions ont changé.
Votre équipe doit vérifier cette affirmation, expliquer ce qui change réellement et corriger un court mémo qui confond encore cotes et probabilités.
Durée: 25 minutes.
Production: une comparaison de deux paramétrisations, deux probabilités inédites et un mémo corrigé de quatre phrases.
Ce que vous devez apprendre
À la fin de cette mission, vous devez pouvoir:
- distinguer le modèle statistique de son paramétrage;
- expliquer pourquoi une catégorie de référence change les coefficients sans modifier les valeurs ajustées;
- choisir une unité d’âge plus lisible;
- vérifier numériquement l’invariance des probabilités;
- corriger une interprétation qui transforme un rapport de cotes en rapport de probabilités.
1. Reprendre le partage fermé
Reprenez titanic_eiom de la mission 1.
Le jeu test reste fermé. Cette mission compare deux écritures du même modèle sur les mêmes lignes d’entraînement.
2. Recentrer l’âge et changer la référence
entrainement_recode <- entrainement |>
mutate(
classe_ref_1re = relevel(classe, ref = "1re"),
age_10 = (age - 30) / 10
)
modele_recode <- glm(
survie ~ sexe + classe_ref_1re + age_10 + tarif,
data = entrainement_recode,
family = binomial()
)
tidy(modele_recode) |>
mutate(rapport_cotes = exp(estimate))Avant de comparer les nombres, écrivez ce que signifient maintenant:
- l’ordonnée à l’origine;
classe_ref_1re3e;classe_ref_1re2e;age_10.
Le coefficient de age_10 compare dix années supplémentaires. Le coefficient classe_ref_1re3e compare la 3e classe à la 1re, soit l’inverse de la comparaison précédemment affichée.
3. Vérifier l’invariance des probabilités
probabilites_originales <- predict(
modele_original,
newdata = entrainement,
type = "response"
)
probabilites_recodees <- predict(
modele_recode,
newdata = entrainement_recode,
type = "response"
)
max(abs(probabilites_originales - probabilites_recodees))La différence maximale devrait être seulement une erreur d’arrondi numérique. Expliquez pourquoi:
- l’ordonnée à l’origine a changé;
- certains coefficients de classe ont changé de signe;
- le coefficient de l’âge a changé d’unité;
- les probabilités sont pourtant identiques.
Un changement de coordonnées n’est pas automatiquement un changement de surface prédictive.
4. Produire deux probabilités inédites
profils_audites <- tibble(
profil = c("Profil A", "Profil B"),
sexe = factor(
c("homme", "femme"),
levels = levels(entrainement$sexe)
),
classe = factor(
c("2e", "1re"),
levels = levels(entrainement$classe)
),
age = c(20, 50),
tarif = c(20, 60)
)
profils_audites <- profils_audites |>
mutate(
classe_ref_1re = relevel(classe, ref = "1re"),
age_10 = (age - 30) / 10,
probabilite_originale = predict(
modele_original,
newdata = pick(sexe, classe, age, tarif),
type = "response"
),
probabilite_recodee = predict(
modele_recode,
newdata = pick(sexe, classe_ref_1re, age_10, tarif),
type = "response"
)
)
profils_auditesCes profils diffèrent sur plusieurs caractéristiques. La différence entre leurs probabilités ne doit donc pas être attribuée à un seul coefficient.
5. Auditer le mémo
Classez chaque phrase comme acceptable, à corriger ou impossible à conclure:
- « Le rapport de cotes de 12,1 signifie que la probabilité de survie en 1re classe est 12,1 fois celle de la 3e classe. »
- « Le coefficient négatif de 3e classe dans le modèle recodé contredit le coefficient positif de 1re classe dans le modèle original. »
- « Exprimer l’âge par dix ans rend l’unité plus lisible sans modifier les probabilités. »
- « Le profil B reçoit une probabilité plus élevée, donc nous savons quelle caractéristique en est la cause. »
Corrigez les phrases 1, 2 et 4. Votre formulation doit nommer les cotes, la référence, les autres variables du modèle et la limite non causale.
Votre production
Remettez:
- les rapports de cotes du modèle recodé;
- la différence maximale entre les deux séries de probabilités;
- les deux probabilités des profils A et B;
- un mémo corrigé de quatre phrases.
Vérification avant de remettre
- Le modèle et les données d’entraînement sont les mêmes dans les deux écritures.
- La nouvelle référence de classe est clairement nommée.
age_10représente dix années à partir de 30 ans.- Les probabilités des deux paramétrisations sont égales à l’arrondi près.
- Les mots « cotes » et « probabilité » ne sont pas utilisés comme synonymes.
- Le jeu test n’a pas servi à choisir ou corriger le modèle.