Kom igångKom igång gratis

Jämförelse av länkfunktioner för ett givet tröskelvärde

I den här sista övningen ska du anpassa en modell med var och en av de tre länkfunktionerna (logit, probit och cloglog), göra prediktioner för testmängden, klassificera prediktion­erna i rätt grupp (fallissemang eller icke-fallissemang) utifrån ett givet tröskelvärde, skapa en förväxlingsmatris och beräkna träffsäkerheten och känsligheten för varje modell. Du har verkligen lärt dig mycket hittills! Slutligen ska du också identifiera vilken modell som presterar bäst i fråga om träffsäkerhet vid det valda tröskelvärdet.

Det är viktigt att känna till att skillnaderna mellan modellerna i allmänhet är mycket små, och resultaten beror dessutom på det valda tröskelvärdet. Det faktiska utfallet (fallissemang eller icke-fallissemang) finns lagrat i true_val i konsolen.

Den här övningen är en del av kursen

Kreditriskmodellering i R

Visa kurs

Övningsinstruktioner

  • Anpassa tre logistiska regressionsmodeller med länkfunktionerna logit, probit respektive cloglog. En del av koden är redan given. Använd age, emp_cat, ir_cat och loan_amnt som prediktorer.
  • Gör prediktioner för alla modeller med hjälp av test_set.
  • Använd ett tröskelvärde på 14 % för att klassificera prediktion­erna för varje modell, så att deras prestanda kan utvärderas.
  • Skapa en förväxlingsmatris för de tre modellerna.
  • Beräkna slutligen klassificerings­träffsäkerheten för samtliga tre modeller.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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 <- 
Redigera och kör kod