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) 

ROC-Kurve in ggplot2

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, ' ) ')) 

ROC-Kurve mit AUC in ggplot2

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() 

ROC-Kurve in R mit ggplot2

Indiesem Artikel finden Sie eine Anleitung zu den besten ggplot2-Themen.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert