Comparar funciones de enlace para un umbral dado
En este último ejercicio, ajustarás un modelo con cada una de las tres funciones de enlace (logit, probit y cloglog), harás predicciones para el conjunto de prueba, clasificarás las predicciones en el grupo correspondiente (impago vs. no impago) para un umbral dado, construirás una matriz de confusión y calcularás la exactitud y la sensibilidad de cada modelo para ese umbral. ¡Vaya, has aprendido un montón hasta ahora! Y por último, intentarás identificar el modelo que mejor rinde en términos de exactitud dado el valor de umbral.
Es importante saber que, por lo general, las diferencias entre los modelos serán muy pequeñas y, una vez más, los resultados dependerán del umbral elegido. El resultado observado (impago vs. no impago) está almacenado en true_val en la consola.
Este ejercicio forma parte del curso
Modelización del riesgo de crédito en R
Instrucciones del ejercicio
- Ajusta tres modelos de regresión logística usando los enlaces
logit,probitycloglog, respectivamente. Parte del código ya está dado. Usaage,emp_cat,ir_catyloan_amntcomo predictores. - Haz predicciones para todos los modelos usando
test_set. - Usa un umbral del 14% para generar las predicciones de cada modelo y poder evaluar su rendimiento.
- Construye una matriz de confusión para los tres modelos.
- Por último, calcula la exactitud de clasificación para los tres modelos.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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 <-