predictions_test <- test |>
mutate(
probabilite_survie = predict(
modele_logistique,
newdata = test,
type = "response"
)
)Mission finale: évaluer avant de conclure
Confusion, seuil, discrimination et calibration
Votre mandat
Votre équipe doit ouvrir le jeu test, évaluer les probabilités produites par le modèle et choisir un seuil adapté à un mandat analytique. La fiche modèle de six phrases sera rédigée collectivement dans le bloc de restitution, après la formalisation de ROC, de la calibration et du Brier.
Durée: 25 minutes.
Production obligatoire: une matrice de confusion, une comparaison de seuils, une aire ROC, un diagnostic de calibration, un seuil justifié et une limite. Le calcul comparatif du Brier est un prolongement facultatif.
Ce que vous devez apprendre
À la fin de cette mission, vous devez pouvoir:
- distinguer une probabilité d’une classe prédite;
- identifier vrais positifs, faux positifs, vrais négatifs et faux négatifs;
- expliquer le compromis entre sensibilité et spécificité;
- interpréter une aire ROC sans la confondre avec la calibration;
- choisir un seuil à partir d’un mandat, et non par automatisme;
- préparer les éléments nécessaires à une fiche modèle concise.
Trois familles de questions
Avant de calculer, classez chaque résultat:
| Famille | Question | Exemple |
|---|---|---|
| classification | que produit un seuil précis? | sensibilité à 0,50 |
| discrimination | les positifs reçoivent-ils des scores plus élevés? | aire ROC |
| calibration | les probabilités correspondent-elles aux fréquences? | graphique par groupes |
Un modèle peut bien classer et mal calibrer. Il peut aussi être bien calibré en moyenne tout en séparant faiblement les deux catégories.
Vous allez rencontrer la courbe ROC et le graphique de calibration avant leur formalisation collective. Les explications et le code ci-dessous suffisent pour cette découverte guidée. Après la mission, la présentation reprendra ces outils, puis introduira le Brier avant la rédaction de la fiche modèle.
1. Produire les probabilités de test
Ces probabilités sont hors échantillon: les lignes n’ont pas servi à estimer les coefficients.
2. Évaluer un seuil de 0,50
predictions_05 <- predictions_test |>
mutate(
classe_predite = factor(
if_else(
probabilite_survie >= 0.50,
"survecu",
"non_survecu"
),
levels = levels(verite)
)
)
conf_mat(
predictions_05,
truth = verite,
estimate = classe_predite
)
metric_set(accuracy, sens, spec, ppv)(
predictions_05,
truth = verite,
estimate = classe_predite,
event_level = "second"
)Expliquez chaque dénominateur avec des mots. La sensibilité part des survivants enregistrés; la précision part des prédictions positives.
Pour vérifier votre lecture, complétez:
Parmi les passagers enregistrés comme survivants, le modèle en détecte …
Parmi les passagers classés positifs par le modèle, … sont enregistrés comme survivants.
Ces deux phrases n’ont pas le même point de départ.
3. Comparer trois seuils
evaluer_seuil <- function(donnees, seuil) {
donnees |>
summarise(
seuil = seuil,
proportion_positive = mean(probabilite_survie >= seuil),
sensibilite = sum(
probabilite_survie >= seuil & survie == 1
) / sum(survie == 1),
specificite = sum(
probabilite_survie < seuil & survie == 0
) / sum(survie == 0),
precision = sum(
probabilite_survie >= seuil & survie == 1
) / sum(probabilite_survie >= seuil)
)
}
table_seuils <- map_dfr(
c(0.30, 0.50, 0.70),
~ evaluer_seuil(predictions_test, .x)
)
table_seuilsChoisissez un mandat:
- repérer la plus grande proportion possible de survivants enregistrés;
- limiter les faux positifs;
- conserver un compromis entre sensibilité et spécificité.
Indiquez le seuil retenu et l’erreur que ce choix accepte davantage.
Votre justification doit avoir la forme:
Pour le mandat …, nous retenons le seuil … parce qu’il privilégie la mesure …; en contrepartie, il augmente …
L’exactitude la plus élevée ne suffit pas à justifier le seuil. Elle additionne des erreurs qui pourraient ne pas avoir la même importance pour le mandat.
4. Mesurer le classement
roc_auc(
predictions_test,
truth = verite,
probabilite_survie,
event_level = "second"
)
roc_curve(
predictions_test,
truth = verite,
probabilite_survie,
event_level = "second"
) |>
autoplot()L’aire ROC mesure le classement de paires positives et négatives sur l’ensemble des seuils. Elle ne dit pas si une probabilité de 0,70 correspond à une fréquence observée proche de 70 %.
Une aire ROC de 0,50 correspond à un classement sans information. Une valeur de 1 correspondrait à un classement parfait dans les données évaluées. Les valeurs intermédiaires ne donnent pas directement l’exactitude d’un seuil particulier.
5. Examiner la calibration
calibration <- predictions_test |>
mutate(groupe = ntile(probabilite_survie, 5)) |>
summarise(
probabilite_moyenne = mean(probabilite_survie),
frequence_observee = mean(survie),
n = n(),
.by = groupe
)
ggplot(
calibration,
aes(probabilite_moyenne, frequence_observee)
) +
geom_abline(slope = 1, intercept = 0, linetype = 2) +
geom_line() +
geom_point(aes(size = n)) +
coord_equal(xlim = c(0, 1), ylim = c(0, 1)) +
labs(
x = "Probabilité moyenne prédite",
y = "Fréquence observée"
)Avec seulement 179 lignes de test, cette courbe groupée est exploratoire. Décrivez les écarts sans déclarer la calibration parfaite ou définitivement mauvaise.
Si les points sont au-dessus de la diagonale, la fréquence observée dépasse la probabilité moyenne et le modèle sous-estime le risque dans ce groupe. S’ils sont sous la diagonale, il le surestime. Vérifiez toujours les axes avant d’utiliser ces mots.
Prolongement facultatif: comparer l’erreur des probabilités
Le score de Brier est l’erreur quadratique moyenne des probabilités. Un score plus petit indique une erreur probabiliste plus faible, mais il n’existe pas de seuil universel permettant de déclarer un modèle bon. Il faut le comparer à une règle simple calculée sur les mêmes observations.
Utilisez comme référence une probabilité constante égale à la proportion de survivants enregistrés dans l’entraînement:
probabilite_reference <- mean(entrainement$survie)
comparaison_brier <- predictions_test |>
summarise(
brier_modele = mean(
(survie - probabilite_survie)^2
),
brier_reference = mean(
(survie - probabilite_reference)^2
)
)
comparaison_brierQuestions:
- Le modèle améliore-t-il l’erreur quadratique par rapport à la règle constante?
- Cette comparaison suffit-elle à prouver que chaque groupe de probabilités est bien calibré?
- Pourquoi le score de Brier et l’aire ROC ne répondent-ils pas à la même question?
Le score de Brier résume l’erreur des probabilités. Le graphique de calibration montre où certaines probabilités semblent trop élevées ou trop faibles. Les deux diagnostics se complètent.
Après la mission: rédiger la fiche modèle
Cette rédaction est prévue dans le bloc collectif de 12 h 08 à 12 h 15. Conservez dès maintenant votre seuil, son mandat, l’erreur davantage acceptée et votre diagnostic de calibration.
Écrivez exactement six phrases:
- unité, échantillon et réponse;
- prédicteurs et stratégie pour les âges manquants;
- association conditionnelle principale;
- résultats de discrimination, de calibration et de Brier;
- seuil retenu, mandat et erreur davantage acceptée;
- limite historique, causale ou de généralisation.
La fiche doit pouvoir être comprise sans la sortie R. Arrondissez les mesures à trois décimales et traduisez chaque nombre en une phrase. Une bonne fiche ne cherche pas à présenter le modèle comme définitif.
Erreurs fréquentes à éviter
- Annoncer une aire ROC comme pourcentage de bonnes classes.
- Choisir 0,50 uniquement parce que c’est la valeur par défaut.
- Confondre sensibilité et précision.
- Décrire cinq groupes de calibration comme une preuve définitive.
- Si vous faites le prolongement, interpréter le score de Brier sans le comparer à une référence.
- Oublier que les âges manquants ont été exclus avant le partage.
- Transformer le seuil en règle historique de sauvetage.
Vérification finale
- Toutes les mesures sont calculées sur
test. - L’événement positif est
survecu. - La sensibilité et la précision ne sont pas confondues.
- Le seuil est relié à un mandat.
- L’aire ROC et la calibration répondent à deux questions différentes.
- Si le prolongement est réalisé, le score de Brier du modèle est comparé à la règle constante.
- La petite taille du test est mentionnée.
- Les éléments destinés à la fiche ne transforment pas l’exercice en règle réelle de sauvetage.