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 prediktionerna 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
Övningsinstruktioner
- Anpassa tre logistiska regressionsmodeller med länkfunktionerna
logit,probitrespektivecloglog. En del av koden är redan given. Användage,emp_cat,ir_catochloan_amntsom 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 prediktionerna för varje modell, så att deras prestanda kan utvärderas.
- Skapa en förväxlingsmatris för de tre modellerna.
- Beräkna slutligen klassificeringsträ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 <-