So zeichnen sie eine roc-kurve mit ggplot2 (mit beispielen)
Die logistische Regression ist eine statistische Methode, die wir verwenden, um ein Regressionsmodell anzupassen, wenn die Antwortvariable binär ist. Um zu bewerten, wie gut ein logistisches Regressionsmodell zu einem Datensatz passt, können wir uns die folgenden zwei Metriken ansehen:
- Sensitivität: Wahrscheinlichkeit, dass das Modell ein positives Ergebnis für eine Beobachtung vorhersagt, obwohl das Ergebnis tatsächlich positiv ist.
- Spezifität: Die Wahrscheinlichkeit, dass das Modell ein negatives Ergebnis für eine Beobachtung vorhersagt, obwohl das Ergebnis tatsächlich negativ ist.
Eine einfache Möglichkeit, diese beiden Metriken zu visualisieren, besteht darin, eine ROC-Kurve zu erstellen, bei der es sich um ein Diagramm handelt, das die Sensitivität und Spezifität eines logistischen Regressionsmodells anzeigt.
In diesem Tutorial wird erklärt, wie Sie mit dem Visualisierungspaket ggplot2 eine ROC-Kurve in R erstellen und interpretieren.
Beispiel: ROC-Kurve mit ggplot2
Angenommen, wir passen das folgende logistische Regressionsmodell in R an:
#load Default dataset from ISLR book data <- ISLR::Default #divide dataset into training and test set set.seed(1) sample <- sample(c( TRUE , FALSE ), nrow (data), replace = TRUE , prob =c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model to training set model <- glm(default~student+balance+income, family=" binomial ", data=train) #use model to make predictions on test set predicted <- predict(model, test, type=" response ")
Um die Leistung des logistischen Regressionsmodells auf dem Testsatz zu visualisieren, können wir mit der Funktion ggroc() aus dem pROC-Paket ein ROC-Diagramm erstellen:
#load necessary packages library (ggplot2) library (pROC) #define object to plot rocobj <- roc(test$default, predicted) #create ROC plot ggroc(rocobj)
Die y-Achse zeigt die Sensitivität (die wahre positive Rate) des Modells und die x-Achse zeigt die Spezifität (die wahre negative Rate) des Modells an.
Beachten Sie, dass wir dem Plot Stil hinzufügen und auch einen Titel bereitstellen können, der die AUC (Fläche unter der Kurve) des Plots enthält:
#load necessary packages library (ggplot2) library (pROC) #define object to plot and calculate AUC rocobj <- roc(test$default, predicted) auc <- round (auc(test$default, predicted), 4 ) #create ROC plot ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) '))
Beachten Sie, dass Sie auch das Thema der Handlung ändern können:
#create ROC plot with minimal theme ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) + theme_minimal()
Indiesem Artikel finden Sie eine Anleitung zu den besten ggplot2-Themen.