IniziaInizia gratis

Confronto delle funzioni di link per un dato cut-off

In questo ultimo esercizio, adatterai un modello usando ciascuna delle tre funzioni di link (logit, probit e cloglog), farai previsioni per il set di test, classificherai le previsioni nel gruppo corretto (in default vs non in default) per un dato cut-off, creerai una matrice di confusione e calcolerai accuracy e sensitivity per ciascun modello dato il valore di cut-off! Wow, hai imparato davvero tanto finora. E infine, proverai a identificare il modello che funziona meglio in termini di accuracy dato il valore di cut-off!

È importante sapere che le differenze tra i modelli saranno in genere molto piccole e, ancora una volta, i risultati dipenderanno dal valore di cut-off scelto. L’esito osservato (in default vs non in default) è memorizzato in true_val nella console.

Questo esercizio fa parte del corso

Credit Risk Modeling in R

Visualizza il corso

Istruzioni dell'esercizio

  • Adatta tre modelli di regressione logistica usando rispettivamente i link logit, probit e cloglog. Parte del codice è fornita. Usa age, emp_cat, ir_cat e loan_amnt come predittori.
  • Fai le previsioni per tutti i modelli usando il test_set.
  • Usa un valore di cut-off del 14% per generare le previsioni di ciascun modello, così da poterne valutare le prestazioni.
  • Crea una matrice di confusione per i tre modelli.
  • Infine, calcola la classification accuracy per tutti e tre i modelli.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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 <- 
Modifica ed esegui il codice