Aan de slagGa gratis aan de slag

Koppelfuncties vergelijken voor een gegeven cut-off

In deze laatste oefening pas je voor elk van de drie koppelfuncties (logit, probit en cloglog) een model toe, maak je voorspellingen voor de testset, classificeer je de voorspellingen in de juiste groep (default versus non-default) voor een gegeven cut-off, maak je een confusion matrix en bereken je de accuracy en sensitivity voor elk van de modellen bij de gekozen cut-offwaarde! Wauw, je hebt al veel geleerd. Tot slot probeer je te bepalen welk model het beste presteert qua accuracy bij de gekozen cut-offwaarde!

Het is belangrijk om te weten dat de verschillen tussen de modellen meestal erg klein zullen zijn, en opnieuw, de resultaten hangen af van de gekozen cut-offwaarde. De geobserveerde uitkomst (default versus non-default) staat in true_val in de console.

Deze oefening maakt deel uit van de cursus

Kredietrisicomodellering in R

Cursus bekijken

Oefeninstructies

  • Pas drie logistische regressiemodellen toe met respectievelijk de links logit, probit en cloglog. Een deel van de code is gegeven. Gebruik age, emp_cat, ir_cat en loan_amnt als voorspellers.
  • Maak voorspellingen voor alle modellen met de test_set.
  • Gebruik een cut-offwaarde van 14% om voor elk model voorspellingen te maken, zodat je de prestaties kunt evalueren.
  • Maak een confusion matrix voor de drie modellen.
  • Bereken ten slotte de classificatie-accuracy voor alle drie de modellen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 <- 
Code bewerken en uitvoeren