Porovnání linkových funkcí pro danou prahovou hodnotu
V tomto závěrečném cvičení natrénuješ model pro každou ze tří linkových funkcí (logit, probit a cloglog), vytvoříš predikce pro testovací sadu, klasifikuješ je do příslušné skupiny (defaultní vs. nedefaultní) podle zvolené prahové hodnoty, sestavíš matici záměn a vypočítáš přesnost a senzitivitu každého modelu. Nakonec zkusíš určit, který model si vede nejlépe z hlediska přesnosti při dané prahové hodnotě!
Měj na paměti, že rozdíly mezi modely bývají zpravidla velmi malé a výsledky závisí na zvolené prahové hodnotě. Skutečný výsledek (defaultní vs. nedefaultní) je uložen v proměnné true_val v konzoli.
Toto cvičení je součástí kurzu
Modelování kreditního rizika v R
Pokyny k cvičení
- Natrénuj tři modely logistické regrese s linkovými funkcemi
logit,probitacloglog. Část kódu je již připravená. Jako prediktory použijage,emp_cat,ir_cataloan_amnt. - Vytvoř predikce pro všechny tři modely pomocí
test_set. - Použij prahovou hodnotu 14 % pro klasifikaci predikcí každého modelu, aby bylo možné vyhodnotit jejich výkon.
- Sestavte matici záměn pro všechny tři modely.
- Nakonec vypočítej klasifikační přesnost pro každý z modelů.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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 <-