CommencerCommencez gratuitement

Comparer les fonctions de lien pour un seuil donné

Dans ce dernier exercice, vous allez ajuster un modèle avec chacune des trois fonctions de lien (logit, probit et cloglog), faire des prédictions sur le jeu de test, classer les prédictions dans le bon groupe (défaut vs non‑défaut) pour un seuil donné, créer une matrice de confusion et calculer l’exactitude et la sensibilité pour chacun des modèles en fonction de ce seuil ! Wow, vous avez déjà beaucoup appris. Enfin, vous tenterez d’identifier le modèle qui offre la meilleure exactitude pour le seuil choisi !

Il est important de savoir que les différences entre les modèles seront généralement très faibles et, encore une fois, que les résultats dépendront du seuil retenu. Le résultat observé (défaut vs non‑défaut) est stocké dans true_val dans la console.

Cet exercice fait partie du cours

<cours>Modélisation du risque de crédit en R</cours>
Voir le cours

Instructions de l’exercice

  • Ajustez trois modèles de régression logistique en utilisant respectivement les liens logit, probit et cloglog. Une partie du code est fournie. Utilisez age, emp_cat, ir_cat et loan_amnt comme prédicteurs.
  • Faites des prédictions pour tous les modèles à l’aide de test_set.
  • Utilisez un seuil de 14 % pour produire des prédictions pour chacun des modèles, afin de pouvoir évaluer leurs performances.
  • Construisez une matrice de confusion pour les trois modèles.
  • Enfin, calculez l’exactitude de classification pour les trois modèles.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Fit the logit, probit and cloglog-link logistic regression models
log_model_logit <- glm(loan_status ~ age + emp_cat + ir_cat + loan_amnt,
                       family = binomial(link = logit), data = training_set)
log_model_probit <- 

log_model_cloglog <-  
  
# Make predictions for all models using the test set
predictions_logit <- predict(log_model_logit, newdata = test_set, type = "response")
predictions_probit <- 
predictions_cloglog <- 
  
# Use a cut-off of 14% to make binary predictions-vectors
cutoff <- 0.14
class_pred_logit <- ifelse(predictions_logit > cutoff, 1, 0)
class_pred_probit <- 
class_pred_cloglog <- 
  
# Make a confusion matrix for the three models
tab_class_logit <- table(true_val,class_pred_logit)
tab_class_probit <- 
tab_class_cloglog <- 
  
# Compute the classification accuracy for all three models
acc_logit <- sum(diag(tab_class_logit)) / nrow(test_set)
acc_probit <- 
acc_cloglog <- 
Modifier et exécuter le code