Kostenfunktion zur Validierung von Poisson-Regressionsmodellen


11

Für Zähldaten, die ich gesammelt habe, verwende ich die Poisson-Regression, um Modelle zu erstellen. Ich mache das mit der glmFunktion in R, wo ich benutze family = "poisson". Um mögliche Modelle zu bewerten (ich habe mehrere Prädiktoren), verwende ich den AIC. So weit, ist es gut. Jetzt möchte ich eine Kreuzvalidierung durchführen. Dies ist mir bereits mit der cv.glmFunktion aus dem bootPaket gelungen . Aus der Dokumentation von cv.glmIch sehe, dass Sie beispielsweise für Binomialdaten eine bestimmte Kostenfunktion verwenden müssen, um einen aussagekräftigen Vorhersagefehler zu erhalten. Ich habe jedoch noch keine Ahnung, für welche Kostenfunktion geeignet ist family = poisson, und eine umfangreiche Google-Suche ergab keine spezifischen Ergebnisse. Meine Frage ist, cv.glmob jemand etwas Licht ins Dunkel bringen kann, für welche Kostenfunktion im Fall von Poisson Glm geeignet ist.


1
Die Funktion cv.glmnetim Paket glmnetwird type.measure="deviance"für die Poisson-Familie verwendet.
rcs

Streng genommen zeigt die Dokumentation, dass es sinnvoll ist, eine bestimmte Kostenfunktion für Binärdaten zu verwenden.
Corone

@corone of ist weder kontinuierliche Daten noch binäre Daten. Also suchte ich nach einer Kostenfunktion, die für Zähldaten geeignet ist.
Paul Hiemstra

1
Ich denke nicht, dass die Diskretion der Daten hier einen großen Unterschied macht, es sei denn, Ihre Anzahl ist sehr gering. Es geht vielmehr um die Verteilung der Daten. Für binäre Daten ist die Vorhersage eine kontinuierliche Wahrscheinlichkeit zwischen 0 und 1, aber die Antwort ist immer 0 oder 1. In ihrem Beispiel zwingen die Kosten dazu, "richtig" oder "falsch" zu sein und die Anzahl der Rechte und Fehler zu zählen. Sind Sie besonders besorgt über die Kontinuität? Ich werde meiner Antwort eine PS hinzufügen, um die Kontinuität zu
beheben

Antworten:


12

Unter der Annahme, dass in Ihrem speziellen Fall nichts Besonderes ist, gibt es meines Erachtens ein gutes Argument dafür, entweder den Standardwert (Mean Square Error) oder den Mittelwert des Fehler der Protokolle oder sogar den Chi-Quadrat-Fehler zu verwenden.

Der Zweck der Kostenfunktion besteht darin, auszudrücken, wie "verärgert" Sie über falsche Vorhersagen sind, insbesondere welche "Falschheit" Sie am meisten stört. Dies ist besonders wichtig für binäre Antworten, kann jedoch in jeder Situation von Bedeutung sein.

Mittlerer quadratischer Fehler (der Antworten)

C.=1nich(Y.ich- -Y.^ich)2

Mit der MSE reagieren Sie gleichermaßen empfindlich auf Fehler von oben und unten und gleichermaßen empfindlich auf große und kleine Vorhersagen. Dies ist eine ziemlich normale Sache, und deshalb denke ich nicht, dass sie in den meisten Situationen verpönt wäre.

Mittlerer quadratischer Fehler (der Protokollantworten)

C.=1nich(lnY.ich- -lnY.^ich)2

Da Sie mit Zähldaten arbeiten, kann argumentiert werden, dass Sie weder symmetrisch noch größenindifferent sind. Wenn Sie für eine Vorhersage von 10 um 10 Punkte ausfallen, unterscheidet sich dies stark von einer Vorhersage von 1000. Dies ist eine etwas "kanonische" Kostenfunktion, da Sie die Kosten bis zur Verbindungsfunktion angepasst haben. Dies stellt sicher, dass die Kosten mit der im Modell angenommenen Varianzverteilung übereinstimmen.

Chi-Quadrat-Fehler

C.=1nich(Y.ich- -Y.^ich)2Y.^ich

Ein dritter Weg wäre die Verwendung des Chi-Quadrat-Fehlers. Dies kann besonders attraktiv sein, wenn Sie Ihr GLM mit anderen zählbasierten Modellen vergleichen - insbesondere, wenn Ihr GLM Faktoren enthält. Ähnlich wie bei den Fehlerprotokollantworten wird diese mit der Größe skaliert, ist jedoch symmetrisch zur vorhergesagten Anzahl. Sie bewerten jetzt die Anpassungsgüte basierend auf dem prozentualen Fehler.


Über die Diskretion

In der Frage wird das Dokumentationsbeispiel zitiert, in dem eine binäre Antwortvariable vorhanden ist. Verwenden Sie daher eine andere Kostenfunktion. Das Problem für eine binäre Antwort ist, dass der GLM eine reelle Zahl zwischen 0 und 1 vorhersagt, obwohl die Antwort immer genau 0 oder 1 ist. Es ist durchaus gültig zu sagen, dass je näher diese Zahl an der richtigen Antwort liegt, desto besser Prognose, aber oft wollen die Leute das nicht. Der Grund dafür ist, dass man oft so tun muss, als wäre es 0 oder 1, und daher weniger als 0,5 als Prognose für 0 verwendet. In diesem Fall ist es sinnvoll, einfach die Anzahl der "falschen" Prognosen zu zählen. Das Argument hier ist, dass man für eine Richtig / Falsch-Frage immer nur richtig oder falsch sein kann - es gibt keine Abstufung der Falschheit.

Y.^


Anstatt mit dem mittleren quadratischen Fehler des mittleren quadratischen Fehlers der logarithmisch transformierten Antwort zu arbeiten, ist es für GLMs möglicherweise besser, den gewichteten mittleren quadratischen Fehler unter Verwendung von 1 / Varianz-Gewichten zu verwenden (gegeben durch den $ weight-Slot der glm-Ausgabe von R für poisson = 1 / E (Y)). Dies funktioniert meiner Meinung nach für jede Art von GLM.
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.