RMSE (Root Mean Squared Error) für Logistikmodelle

10

Ich habe eine Frage zur Gültigkeit der Verwendung von RMSE (Root Mean Squared Error) zum Vergleich verschiedener Logistikmodelle. Die Antwort ist entweder 0oder 1und die Vorhersagen sind Wahrscheinlichkeiten zwischen 0- 1?

Ist der unten angewandte Weg auch für die binären Antworten gültig?

# Using glmnet
require(glmnet)
load(url("https://github.com/cran/glmnet/raw/master    /data/BinomialExample.RData"))
cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "mse")
A <- predict(cvfit, newx = x, s = "lambda.min", type = "response")
RMSE1 <- mean((y - A)^2)
# 0.05816881

# glm
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
AAA <- predict(mylogit, newdata = mydata, type = "response")
RMSE2 <- mean((mydata$admit - AAA)^2)
# 0.194714
Ahmed El-Gabbas
quelle
1
In diesem Fall ist es das Brier - Score, siehe genannt actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Antworten:

13

Um zu verstehen, warum "die Antwort entweder 0oder 1[aber] die Vorhersagen Wahrscheinlichkeiten zwischen 0- sind 1", müssen Sie die Art des Modells verstehen, mit dem Sie arbeiten. Entfernen Sie die Bestrafungsmethoden und die Kreuzvalidierung, und Sie führen eine grundlegende logistische Regression durch. Die Parameter werden auf die Log Odds / Logistic Scale angepasst. Dies wird als "linearer Prädiktor" bezeichnet. (Um mehr darüber zu erfahren, kann es hilfreich sein, meine Antwort hier zu lesen: Unterschied zwischen Logit- und Probit-Modellen .) Wenn Sie einen x-Wert eingeben und vereinfachen, ist der Wert der vom Modell vorhergesagte natürliche Logarithmus der Erfolgsaussichten. ( 1). Wenn Sie diesen Wert potenzieren würden, hätten Sie die vorhergesagten Gewinnchancen des Modellsdes Erfolgs'. Um eine vorhergesagte Wahrscheinlichkeit zu erhalten , müssten Sie die Gewinnchancen über Gewinnchancen / (1 + Gewinnchancen) in eine Wahrscheinlichkeit umwandeln. (Um mehr darüber zu erfahren, kann es hilfreich sein, meine Antwort hier zu lesen: Interpretation einfacher Vorhersagen zu Quotenverhältnissen in der logistischen Regression .) Dies bringt Sie immer noch nicht zu einer vorhergesagten Klasse . Um das zu bekommen, würden Sie brauchen , um Ihre vorhergesagte Wahrscheinlichkeit zu einem gewissen Schwellenwert zu vergleichen, und wenn es kleiner als der Schwellenwert ist vorhersage ‚Versagens‘ ( 0), sonst ‚Erfolg‘ ( 1). Der häufigste Standardschwellenwert ist 0,5, dies ist jedoch häufig nicht optimal. Mit der predict.glm()Funktion von R können Sie verwendentype="link", das Vorhersagen auf der Skala des linearen Prädiktors ausgibt (dh vor all den obigen Transformationen), aber das hilft Ihnen in diesem Zusammenhang nicht weiter. Die Verwendung type="response"gibt Ihnen die vorhergesagten Wahrscheinlichkeiten.


Wenn Sie beurteilen möchten, wie gut ein binäres (z. B. logistisches) Regressionsmodell eine Antwort vorhersagt, haben Sie mehrere Möglichkeiten:

  1. Die erste und intuitivste besteht darin, die vorhergesagte Klasse mit der beobachteten Klasse zu vergleichen und den korrekten Prozentsatz zu berechnen. Obwohl es intuitiv ist, hat es Probleme. Dies hängt zum Teil davon ab, dass der Schwellenwert zusätzlich zu den anderen Aspekten des Modells, die angemessen angepasst werden, optimal ist. Es wirft auch viele Informationen weg (dh wie weit von der Schwelle die vorhergesagte Wahrscheinlichkeit entfernt ist), was nicht gut ist.
  2. Als nächstes können Sie den Bereich unter der ROC-Kurve (Receiver Operating Characteristic) verwenden. Die meisten Leute benutzen diese Option; es ist erheblich besser als den korrekten Prozentsatz zu verwenden. Die Sache mit der AUC, die die meisten Menschen jedoch nicht erkennen, ist, dass sie tatsächlich die richtige Reihenfolge Ihrer Vorhersagen misst, nicht deren tatsächliche Genauigkeit. Das heißt, wenn Sie Wahrscheinlichkeiten für vier Beobachtungen von vorhergesagt .2, .4, .6, .8und zu allen 0,01 hinzugefügt hätten ( .21, .41, .61, .81), wäre die AUC dieselbe, obwohl beide Sätze vorhergesagter Wahrscheinlichkeiten nicht gleich genau sein können.
  3. Die dritte Möglichkeit, Ihr Modell zu bewerten, besteht darin, eine geeignete Bewertungsfunktion zu verwenden. Die vielleicht beliebteste Score-Funktion in Ihrem Kontext ist der Brier-Score . Wie @fcoppens feststellt, ist die Methode in Ihrem Code die Brier-Punktzahl. Es wird nicht nur bewertet, ob das Modell angemessen vorhersagt, dass eine Beobachtung eher ein "Erfolg" ist als eine andere Beobachtung, sondern auch, ob die vorhergesagte Wahrscheinlichkeit des Modells tatsächlich korrekt ist.

Es ist bedauerlich, dass der Brier-Score weniger bekannt und verwendet ist. Obwohl die relative Intuitivität dieser Methoden ist: Prozent korrekt> AUC> Brier-Score, ist ihre wahre Informativität das Gegenteil: Brier-Score> AUC> Prozent korrekt. Wenn Sie nur ein einfaches Maß für die Leistung Ihres Modells wünschen, ist die Unterscheidung zwischen diesen Methoden weniger wichtig. Wenn Sie diese Methoden jedoch zur Optimierung eines Modells oder zur Auswahl eines Modells verwenden möchten, führt die Verwendung einer minderwertigen Methode zu einer schlechteren Leistung .

gung - Monica wieder einsetzen
quelle
1

Die Verwendung von RMSE ist viel sinnvoller, wenn Ihr Fehlerterm normal mit dem Mittelwert Null verteilt ist, bei binären Ergebnissen jedoch nicht. Daher denke ich, dass Sie verschiedene Ansätze verwenden sollten, die sich für binäre Ergebnisse eignen, z. B. den Vergleich von Wahrscheinlichkeitsunterschieden.

JorgeG
quelle