EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Ajusta tres modelos de regresión logística usando los enlaces logit, probit y cloglog, respectivamente. Parte del código ya está dado. Usa age, emp_cat, ir_cat y loan_amnt como 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 <- 
Editar y ejecutar código