ComeçarComece de graça

Comparando funções de ligação para um cut-off dado

Neste último exercício, você vai ajustar um modelo usando cada uma das três funções de ligação (logit, probit e cloglog), fazer previsões para o conjunto de teste, classificar as previsões no grupo adequado (inadimplente versus não inadimplente) para um cut-off dado, criar uma matriz de confusão e calcular a acurácia e a sensibilidade para cada um dos modelos considerando esse valor de cut-off! Uau, você aprendeu muita coisa até aqui. E, por fim, vai tentar identificar o modelo que tem o melhor desempenho em termos de acurácia dado o valor de cut-off!

É importante saber que as diferenças entre os modelos geralmente serão muito pequenas e, novamente, os resultados dependem do valor de cut-off escolhido. O resultado observado (inadimplente versus não inadimplente) está armazenado em true_val no console.

Este exercício faz parte do curso

Modelagem de Risco de Crédito em R

Ver curso

Instruções do exercício

  • Ajuste três modelos de regressão logística usando as ligações logit, probit e cloglog, respectivamente. Parte do código já é fornecida. Use age, emp_cat, ir_cat e loan_amnt como preditores.
  • Faça previsões para todos os modelos usando o test_set.
  • Use um cut-off de 14% para gerar as previsões de cada modelo, de modo que o desempenho possa ser avaliado.
  • Crie uma matriz de confusão para os três modelos.
  • Por fim, calcule a acurácia de classificação para os três modelos.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código