So berechnen Sie die AUC (Area under Curve) in R

Von Fabian
Kategorie: R
Lesezeit: 3 Minuten

Logistische Regression ist eine statistische Methode, die wir zur Anpassung eines Regressionsmodells verwenden, wenn die Antwortvariable binär ist. Um zu beurteilen, wie gut ein logistisches Regressionsmodell zu einem Datensatz passt, können wir die folgenden zwei Metriken betrachten:

  • Sensitivität: Die Wahrscheinlichkeit, dass das Modell ein positives Ergebnis für eine Beobachtung vorhersagt, wenn das Ergebnis tatsächlich positiv ist. Dies wird auch als "Richtig-positiv-Rate" bezeichnet.
  • Spezifität: Die Wahrscheinlichkeit, dass das Modell ein negatives Ergebnis für eine Beobachtung vorhersagt, wenn das Ergebnis tatsächlich negativ ist. Dies wird auch als "Falsch-negativ-Rate" bezeichnet.

Eine Möglichkeit, diese beiden Messgrößen zu visualisieren, ist die Erstellung einer ROC-Kurve, was für "receiver operating characteristic"-Kurve steht.

Dies ist ein Diagramm, das die Empfindlichkeit auf der y-Achse und (1 - Spezifität) auf der x-Achse anzeigt. Eine Möglichkeit, zu quantifizieren, wie gut das logistische Regressionsmodell die Daten klassifiziert, ist die Berechnung der AUC, was für "Fläche unter der Kurve" (area under curve) steht.

Je näher die AUC bei 1 liegt, desto besser ist das Modell.

Das folgende Beispiel zeigt Schritt für Schritt, wie die AUC für ein logistisches Regressionsmodell in R berechnet wird.

Schritt 1: Laden der Daten

Zunächst laden wir den Default-Datensatz aus dem ISLR-Paket, der Informationen darüber enthält, ob verschiedene Personen mit einem Kredit in Verzug geraten sind oder nicht.

#Datensatz ladenn
data <- ISLR::Default

#Die ersten sechs Zeilen des Datensatzes anzeigen
head(data)

  default student   balance    income
1      No      No  729.5265 44361.625
2      No     Yes  817.1804 12106.135
3      No      No 1073.5492 31767.139
4      No      No  529.2506 35704.494
5      No      No  785.6559 38463.496
6      No     Yes  919.5885  7491.559

Schritt 2: Anpassung des logistischen Regressionsmodells

Als Nächstes passen wir ein logistisches Regressionsmodell an, um die Wahrscheinlichkeit vorherzusagen, dass eine Person ausfällt:

#das Beispiel reproduzierbar machen
set.seed(1)

#Verwenden Sie 70% des Datensatzes als Trainingsmenge und die restlichen 30% als Testmenge
sample <- sample(c(TRUE, FALSE), nrow(data), replace=TRUE, prob=c(0.7,0.3))
train <- data[sample, ]
test <- data[!sample, ] 

#logistisches Regressionsmodell anpassen
model <- glm(default~student+balance+income, family="binomial", data=train)

Schritt 3: Berechnen des AUC des Modells

Als nächstes verwenden wir die Funktion auc() aus dem Paket pROC, um die AUC des Modells zu berechnen. Diese Funktion verwendet die folgende Syntax:

auc(Antwort, Vorhersage)

Wir verwenden diese Funktion in unserem Beispiel folgendermaßen:

#Berechnung der Ausfallwahrscheinlichkeit für jedes Individuum im Testdatensatz
predicted <- predict(model, test, type="response")

#Berechnung der AUC
library(pROC)
auc(test$default, predicted)

Setting levels: control = No, case = Yes
Setting direction: controls < cases
Area under the curve: 0.9437

Die AUC des Modells fällt 0,9437 aus.

Da dieser Wert nahe bei 1 liegt, bedeutet dies, dass das Modell sehr gut vorhersagen kann, ob eine Person ihren Kredit nicht zurückzahlen wird oder nicht.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: