Krzywe ROC do porównania modeli regresji logistycznej
Krzywe ROC można łatwo tworzyć za pomocą pakietu pROC w R. Sprawdźmy, czy istnieją istotne różnice między krzywymi ROC dla czterech modeli regresji logistycznej używanych w tym kursie. Krótkie przypomnienie:
predictions_logitzawiera prognozy prawdopodobieństwa niewywiązania się ze zobowiązania (PD) z użyciem domyślnej funkcji łączącej logit oraz zmiennychage,emp_cat,ir_catiloan_amnt.predictions_probitzawiera prognozy PD z użyciem funkcji probit oraz zmiennychage,emp_cat,ir_catiloan_amnt.predictions_cloglogzawiera prognozy PD z użyciem funkcji łączącej cloglog oraz zmiennychage,emp_cat,ir_catiloan_amnt.predictions_all_fullzawiera prognozy PD z użyciem domyślnej funkcji łączącej logit oraz wszystkich siedmiu zmiennych w zbiorze danych.
Najpierw narysujesz krzywe ROC dla tych czterech modeli na jednym wykresie. Następnie przyjrzysz się polu pod krzywą.
To ćwiczenie jest częścią kursu
Modelowanie ryzyka kredytowego w R
Instrukcje do ćwiczenia
- Wczytaj pakiet pROC w konsoli R.
- Skonstruuj obiekty ROC dla czterech modeli regresji logistycznej, używając funkcji
roc(response, predictor). Pamiętaj, że odpowiedzią jest wskaźnik statusu kredytu wtest_set, który można uzyskać przeztest_set$loan_status. - Użyj wcześniej utworzonych obiektów, aby narysować krzywe ROC. Aby wyświetlić je wszystkie na jednym wykresie, użyj
plot()dla pierwszej krzywej ROC (dlaROC_logit), a lines() dla pozostałych trzech modeli, aby dodać je do tego samego wykresu. - Użyj argumentu
col, aby zmienić kolor krzywej:ROC_probitna"blue",ROC_cloglogna"red", aROC_all_fullna"green". Zwróć uwagę, że – w przeciwieństwie do tego, co omówiono w filmie – etykieta osi X to Specificity, a nie "1-Specificity", co sprawia, że oś przebiega od 1 po lewej stronie do 0 po prawej. - Wydaje się, że funkcja łącząca nie ma tu dużego wpływu na krzywą ROC – głównym czynnikiem poprawiającym jej kształt jest uwzględnienie większej liczby zmiennych w modelu. Aby dokładnie ocenić wydajność krzywych ROC, sprawdź wartości AUC za pomocą funkcji auc().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load the pROC-package
# Construct the objects containing ROC-information
ROC_logit <- roc(test_set$loan_status, predictions_logit)
ROC_probit <-
ROC_cloglog <-
ROC_all_full <-
# Draw all ROCs on one plot
plot(___)
lines(___, col=___)
lines(___, col=___)
lines(___, col=___)
# Compute the AUCs