Fehlermetriken zur Kreuzvalidierung von Poisson-Modellen


29

Ich überprüfe ein Modell, das versucht, eine Zählung vorherzusagen. Wenn dies ein Problem mit der binären Klassifizierung wäre, würde ich die Out-of-Fold-AUC berechnen, und wenn dies ein Regressionsproblem wäre, würde ich den Out-of-Fold-RMSE oder MAE berechnen.

Welche Fehlermetriken kann ich für ein Poisson-Modell verwenden, um die "Genauigkeit" der Vorhersagen außerhalb der Stichprobe zu bewerten? Gibt es eine Poisson-Erweiterung von AUC, die angibt, wie gut die Vorhersagen die tatsächlichen Werte ordnen?

Es scheint, dass bei vielen Kaggle-Wettbewerben um die Anzahl der Stimmen (z. B. Anzahl der nützlichen Stimmen, die eine Ja-Bewertung erhalten wird, oder Anzahl der Tage, die ein Patient im Krankenhaus verbringen wird) der mittlere Log-Quadrat-Fehler (Root Mean Log Squared Error, RMLSE) verwendet wird.


/ Edit: Eine Sache, die ich getan habe, ist die Berechnung von Dezilen der vorhergesagten Werte und dann die Betrachtung der tatsächlichen Zählungen, gruppiert nach Dezilen. Wenn Dezil 1 niedrig ist, Dezil 10 hoch ist und die Dezile dazwischen stark zunehmen, habe ich das Modell als "gut" bezeichnet, aber ich habe Probleme, diesen Prozess zu quantifizieren, und ich bin davon überzeugt, dass es einen besseren gibt Ansatz.

/ Edit 2: Ich suche nach einer Formel, die vorhergesagte und tatsächliche Werte annimmt und eine "Fehler" - oder "Genauigkeit" -Metrik zurückgibt. Mein Plan ist es, diese Funktion anhand der Out-of-Fold-Daten während der Kreuzvalidierung zu berechnen und dann eine Vielzahl von Modellen (z. B. eine Poisson-Regression, eine zufällige Gesamtstruktur und eine GBM ) zu vergleichen.

Eine solche Funktion ist zum Beispiel RMSE = sqrt(mean((predicted-actual)^2)). Eine andere solche Funktion wäre AUC . Keine der beiden Funktionen scheint für Poisson-Daten richtig zu sein.


Für Poisson-Modelle können Sie die Abweichung verwenden. Das ist vergleichbar mit einem MSE, aber besser für einen Poisson geeignet. Wenn die Stichprobengröße nicht klein ist, ist eine gewichtete MSE ziemlich ähnlich.
Glen_b

@ Glen_b Was ist die Formel für Abweichungen?
Zach

1
Abweichung . Wie passt Ihr Poisson-Modell?
Glen_b

Es gibt verschiedene Möglichkeiten, angefangen von einer bestraften Poisson-Regression bis hin zu einer Gbm. Ich suche eine gute Fehlermetrik, um verschiedene Modelle zu vergleichen. Danke für den Hinweis.
Zach

Zumindest die Poisson-Regression sollte automatisch zu einer Abweichung führen
Glen_b

Antworten:


37

Für die Anzahl der Daten, die Sie verwenden können, gibt es einige korrekte und streng korrekte Bewertungsregeln. Bewertungsregeln sind die eingeführten Strafen , wobei P die Vorhersageverteilung und y der beobachtete Wert ist. Sie haben eine Reihe von wünschenswerten Eigenschaften, in erster Linie, dass eine Vorhersage, die näher an der wahren Wahrscheinlichkeit liegt, immer weniger Strafe erhält und es eine (eindeutige) beste Vorhersage gibt, und zwar dann, wenn die vorhergesagte Wahrscheinlichkeit mit der wahren Wahrscheinlichkeit übereinstimmt. Das Minimieren der Erwartung von s ( y , P ) bedeutet daher, die wahren Wahrscheinlichkeiten anzugeben. Siehe auch Wikipedia .s(y,P)Pys(y,P)

Oft nimmt man einen Durchschnitt von denen über alle vorhergesagten Werte als

S=1ni=1ns(y(i),P(i))

Welche Regel Sie anwenden müssen, hängt von Ihrem Ziel ab, aber ich werde eine grobe Beschreibung geben, wann die jeweilige Regel verwendet werden kann.

f(y)F ( y ) k 0 , 1 , , I μ σPr(Y=y)F(y)k0,1,,Iμσ

Streng korrekte Bewertungsregeln

  • Brier-Score : (stabil für Größenungleichgewicht in kategorialen Prädiktoren)s(y,P)=2f(y)+kf2(k)
  • Dawid-Sebastiani-Score : (gut für die allgemeine Wahl des Vorhersagemodells; stabil für Größenungleichgewichte in kategorialen Prädiktoren)s(y,P)=(yμσ)2+2logσ
  • Abweichungsbewertung : ( ist ein Normalisierungsterm, der nur von abhängt , in Poisson-Modellen wird er normalerweise als gesättigte Abweichung verwendet; gut zur Verwendung mit Schätzungen von ein ML-Framework)g y ys(y,P)=2logf(y)+gygyy
  • Logarithmischer Score : (sehr einfach zu berechnen; stabil für Größenungleichgewichte in kategorialen Prädiktoren)s(y,P)=logf(y)
  • Bewerteter Wahrscheinlichkeitsfaktor : (gut für die Gegenüberstellung verschiedener Vorhersagen von sehr hohen Zählwerten; anfällig für Größenungleichgewichte bei kategorialen Prädiktoren)s(y,P)=k{F(k)I(yk)}2
  • Kugelförmiger Score : (stabil für Größenungleichgewicht in kategorialen Prädiktoren)s(y,P)=f(y)kf2(k)

Andere Bewertungsregeln (nicht so richtig, aber oft verwendet)

  • Absolute Fehlerbewertung :(nicht richtig)s(y,P)=|yμ|
  • Quadratische Fehlerbewertung : (nicht genau richtig; anfällig für Ausreißer; anfällig für Größenungleichgewichte bei kategorialen Prädiktoren)s(y,P)=(yμ)2
  • Pearson normalisierte quadratische Fehlerbewertung : (nicht genau richtig; anfällig für Ausreißer; kann verwendet werden, um zu überprüfen, ob das Modell die gemittelte Bewertung überprüft ist sehr verschieden von 1; stabil für Größenungleichgewichte in kategorialen Prädiktoren)s(y,P)=(yμσ)2

Beispiel R-Code für die streng korrekten Regeln:

library(vcdExtra)
m1 <- glm(Freq ~ mental, family=poisson, data=Mental) 

# scores for the first observation
mu <- predict(m1, type="response")[1]
x  <- Mental$Freq[1]

# logarithmic (equivalent to deviance score up to a constant) 
-log(dpois(x, lambda=mu))

# quadratic (brier)
-2*dpois(x,lambda=mu) + sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) })

# spherical
- dpois(x,mu) / sqrt(sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) }))

# ranked probability score
sum(ppois((-1):(x-1), mu)^2) + sum((ppois(x:10000,mu)-1)^2)

# Dawid Sebastiani
(x-mu)^2/mu + log(mu)

@Momo, es ist ein alter Thread, aber sehr gut und nützlich. Frage jedoch nach der logarithmischen Bewertung. Sie haben die Funktion verwendet -log(f(y)). Sollte das -Schild wirklich da sein? In Ihrer Bewertungsregel wikipedia link ( en.wikipedia.org/wiki/Scoring_rule#Logarithmic_scoring_rule ) ist die logarithmische Bewertung kein negatives Vorzeichen: L(r,i)=ln(ri)Ist es normal? Ist in diesem Fall eine höhere Punktzahl besser oder schlechter?
Bastien

Ist es besser (oder zumindest konservativer und realistischer), diese Maße anhand eines Validierungsdatensatzes zu berechnen, der nicht Teil der für die Schätzung der Modelle verwendeten Daten war?
Fred

Angesichts der Tatsache, dass GLMs unter Verwendung iterativ neu gewichteter kleinster Quadrate, wie in bwlewis.github.io/GLM , geeignet sind , wäre der eigentliche Einwand, ein gewichtetes R2 auf der GLM-Verbindungsskala unter Verwendung von 1 / Varianzgewichten als Gewichten (die glm zurückgibt) zu berechnen in den Schlitz Gewichte in einem glm fit)? Das würde doch auch bei einem Poisson glm funktionieren oder?
Tom Wenseleers

Siehe stats.stackexchange.com/questions/412580/... für ein reproduzierbares Beispiel ...
Tom Wenseleers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.