ROC-Kurven zum Vergleich logistischer Regressionsmodelle
ROC-Kurven lassen sich in R mit dem pROC-Paket ganz einfach erstellen. Schau dir an, ob es große Unterschiede zwischen den ROC-Kurven der vier logistischen Regressionsmodelle gibt, die wir zuvor im Kurs verwendet haben. Vorab ein kurzer Hinweis:
predictions_logitenthält PD-Vorhersagen (Probability of Default) mit der Standard-Logit-Linkfunktion und den Variablenage,emp_cat,ir_catundloan_amnt.predictions_probitenthält PD-Vorhersagen mit der Probit-Linkfunktion und den Variablenage,emp_cat,ir_catundloan_amnt.predictions_cloglogenthält PD-Vorhersagen mit der cloglog-Linkfunktion und den Variablenage,emp_cat,ir_catundloan_amnt.predictions_all_fullenthält PD-Vorhersagen mit der Standard-Logit-Linkfunktion und allen sieben Variablen im Datensatz.
Zuerst zeichnest du die ROC-Kurven dieser vier Modelle in einem Plot. Danach schaust du dir die Fläche unter der Kurve an.
Diese Übung ist Teil des Kurses
<Kurs>Kreditrisikomodellierung in R</Kurs>Übungsanweisungen
- Lade das pROC-Paket in deiner R-Konsole.
- Erzeuge die ROC-Objekte für die vier logistischen Regressionsmodelle mit der Funktion
roc(response, predictor). Denk daran: Die Response ist der Kreditstatus-Indikator imtest_set, den du übertest_set$loan_statuserhältst. - Verwende die zuvor erzeugten Objekte, um ROC-Kurven zu konstruieren. Um alle in einem Plot darzustellen, nutze
plot()für die zuerst gezeichnete ROC-Kurve (fürROC_logit) und füge die anderen drei Modelle mit lines() zum selben Plot hinzu. - Nutze das Argument
col, um die Farbe der Kurve vonROC_probitauf"blue",ROC_cloglogauf"red"undROC_all_fullauf"green"zu setzen. Beachte: Anders als im Video besprochen ist die x-Achsenbeschriftung Specificity und nicht "1-Specificity". Die Achse verläuft daher links von 1 nach rechts zu 0. - Es scheint, dass die Linkfunktion hier keinen großen Einfluss auf die ROC hat und der wichtigste Hebel für eine bessere ROC die Aufnahme zusätzlicher Variablen ins Modell ist. Um die Performance der ROC-Kurven genau zu beurteilen, schau dir die AUCs mit der Funktion auc() an.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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