Für Zähldaten, die ich gesammelt habe, verwende ich die Poisson-Regression, um Modelle zu erstellen. Ich mache das mit der glm
Funktion 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.glm
Funktion aus dem boot
Paket gelungen . Aus der Dokumentation von cv.glm
Ich 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.glm
ob jemand etwas Licht ins Dunkel bringen kann, für welche Kostenfunktion im Fall von Poisson Glm geeignet ist.
quelle
cv.glmnet
im Paketglmnet
wirdtype.measure="deviance"
für die Poisson-Familie verwendet.Antworten:
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)
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)
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
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.
quelle