CommencezCommencez gratuitement

Comparer les fonctions de liaison pour un seuil donné

Dans ce dernier exercice, vous allez ajuster un modèle avec chacune des trois fonctions de liaison (logit, probit et cloglog), faire des prédictions pour l'ensemble de test, classer les prédictions dans le bon groupe (défaut versus non-défaut) pour un seuil donné, créer une matrice de confusion et calculer la justesse de classification et la sensibilité pour chacun des modèles selon la valeur du seuil ! Wow, vous en avez appris beaucoup jusqu'ici. Finalement, vous tenterez d'identifier le modèle qui offre la meilleure performance en termes de justesse compte tenu du 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 choisi. L'issue observée (défaut versus non-défaut) est stockée dans true_val dans la console.

Cette activité fait partie du cours

Modélisation du risque de crédit en R

Voir le cours

Instructions de l’exercice

  • Ajustez trois modèles de régression logistique en utilisant les liaisons logit, probit et cloglog, respectivement. 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 leur performance.
  • Créez une matrice de confusion pour les trois modèles.
  • Enfin, calculez la justesse 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