So berechnen sie die auc (fläche unter der kurve) in r
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. Dies wird auch als „True-Positive-Rate“ bezeichnet.
- Spezifität: Die Wahrscheinlichkeit, dass das Modell ein negatives Ergebnis für eine Beobachtung vorhersagt, obwohl das Ergebnis tatsächlich negativ ist. Dies wird auch als „echte Negativrate“ bezeichnet.
Eine Möglichkeit, diese beiden Messungen zu visualisieren, besteht darin, eine ROC-Kurve zu erstellen, die für „Receiver Operating Characteristic“-Kurve steht.
Dies ist ein Diagramm, das die Sensitivität entlang der y-Achse und (1 – Spezifität) entlang der x-Achse anzeigt. Eine Möglichkeit, die Wirksamkeit des logistischen Regressionsmodells bei der Klassifizierung von Daten zu quantifizieren, ist die Berechnung der AUC , die für „Fläche unter der Kurve“ steht.
Je näher die AUC bei 1 liegt, desto besser ist das Modell.
Das folgende Schritt-für-Schritt-Beispiel zeigt, wie die AUC für ein logistisches Regressionsmodell in R berechnet wird.
Schritt 1: Daten laden
Zuerst laden wir den Standarddatensatz aus dem ISLR- Paket, der Informationen darüber enthält, ob verschiedene Personen mit einem Kredit in Verzug geraten sind oder nicht.
#load dataset data <- ISLR::Default #view first six rows of dataset 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: Passen Sie das logistische Regressionsmodell an
Als Nächstes passen wir ein logistisches Regressionsmodell an, um die Wahrscheinlichkeit vorherzusagen, dass eine Person zahlungsunfähig wird:
#make this example reproducible set. seeds (1) #Use 70% of dataset as training set and remaining 30% as testing set 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 model <- glm(default~student+balance+income, family=" binomial ", data=train)
Schritt 3: Berechnen Sie die Modell-AUC
Als nächstes verwenden wir die Funktion auc() aus dem pROC- Paket, um die AUC des Modells zu berechnen. Diese Funktion verwendet die folgende Syntax:
keine(Antwort, vorhergesagt)
So verwenden Sie diese Funktion in unserem Beispiel:
#calculate probability of default for each individual in test dataset predicted <- predict(model, test, type=" response ") #calculate AUC library (pROC) auc(test$default, predicted) Setting levels: control = No, case = Yes Setting direction: controls < boxes Area under the curve: 0.9437
Die AUC des Modells beträgt 0,9437 .
Da dieser Wert nahe bei 1 liegt, deutet dies darauf hin, dass das Modell sehr gut vorhersagen kann, ob eine Person mit ihrem Kredit in Verzug gerät oder nicht.