Zacznij terazZacznij za darmo

Porównanie funkcji łącza dla danego punktu odcięcia

W tym ostatnim ćwiczeniu dopasuj model z wykorzystaniem każdej z trzech funkcji łącza (logit, probit i cloglog), wykonaj predykcje dla zbioru testowego, sklasyfikuj wyniki do odpowiedniej grupy (niewywiązanie się ze zobowiązania lub jego brak) dla danego punktu odcięcia, zbuduj macierz pomyłek i oblicz dokładność oraz czułość każdego z modeli! To naprawdę dużo wiedzy w krótkim czasie. Na koniec spróbuj wskazać model, który osiąga najlepszą dokładność przy danym punkcie odcięcia!

Warto wiedzieć, że różnice między modelami będą zazwyczaj bardzo małe, a wyniki zależą od wybranego punktu odcięcia. Obserwowany wynik (niewywiązanie się ze zobowiązania lub jego brak) jest przechowywany w zmiennej true_val w konsoli.

To ćwiczenie jest częścią kursu

Modelowanie ryzyka kredytowego w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Dopasuj trzy modele regresji logistycznej, używając odpowiednio funkcji łącza logit, probit i cloglog. Część kodu jest już gotowa. Użyj zmiennych age, emp_cat, ir_cat i loan_amnt jako predyktorów.
  • Wykonaj predykcje dla wszystkich modeli na zbiorze test_set.
  • Użyj punktu odcięcia wynoszącego 14%, aby sklasyfikować predykcje każdego z modeli i umożliwić ocenę ich wydajności.
  • Zbuduj macierz pomyłek dla wszystkich trzech modeli.
  • Na koniec oblicz dokładność klasyfikacji dla każdego z trzech modeli.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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 <- 
Edytuj i uruchom kod