Compararea funcțiilor de legătură pentru un prag dat
În acest ultim exercițiu, vei antrena un model folosind fiecare dintre cele trei funcții de legătură (logit, probit și cloglog), vei face predicții pe setul de testare, vei clasifica predicțiile în grupul corespunzător (default sau non-default) pentru un prag dat, vei construi o matrice de confuzie și vei calcula acuratețea și sensibilitatea pentru fiecare model! Ai parcurs deja un drum lung. Iar în final, vei încerca să identifici modelul cu cea mai bună acuratețe pentru pragul ales!
Este important să știi că diferențele dintre modele vor fi, în general, foarte mici, iar rezultatele depind de valoarea pragului ales. Rezultatul observat (default versus non-default) este stocat în true_val în consolă.
Acest exercițiu face parte din cursul
Modelarea riscului de credit în R
Instrucțiuni pentru exercițiu
- Antrenează trei modele de regresie logistică folosind funcțiile de legătură
logit,probitși, respectiv,cloglog. O parte din cod este deja furnizată. Foloseșteage,emp_cat,ir_catșiloan_amntca predictori. - Generează predicții pentru toate modelele folosind
test_set. - Aplică un prag de 14% pentru a clasifica predicțiile fiecărui model, astfel încât performanța să poată fi evaluată.
- Construiește o matrice de confuzie pentru cele trei modele.
- În final, calculează acuratețea clasificării pentru toate cele trei modele.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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 <-