Ich habe eine Datenbank von Ereignissen (dh eine Variable von Daten) und zugehörigen Kovariaten.
Die Ereignisse werden durch den nicht stationären Poisson-Prozess erzeugt, wobei Parameter eine unbekannte (aber möglicherweise lineare) Funktion einiger Kovariaten sind.
Ich denke, das NHPoisson-Paket gibt es nur für diesen Zweck; aber nach 15 stunden erfolgloser recherche bin ich noch lange nicht in der lage zu wissen, wie man es benutzt.
Ich habe sogar versucht, beide Bücher zu lesen, auf die verwiesen wird: Coles, S. (2001). Eine Einführung in die statistische Modellierung von Extremwerten. Springer. Casella, G. und Berger, RL, (2002). Statistische Inferenz. Brooks / Cole.
Das einzige Beispiel in der Dokumentation von fitPP.fun scheint nicht zu meinem Setup zu passen. Ich habe keine extremen Werte! Ich habe nur nackte Ereignisse.
Kann mir bitte jemand mit einem einfachen Beispiel für die Anpassung eines Poisson-Prozesses mit dem Parameter mit einer einzelnen Kovariate und der Annahme helfen , dass ? Ich interessiere mich für die Schätzung von und . Ich biete einen zweispaltigen Datensatz mit Ereigniszeiten (zum Beispiel gemessen in Sekunden nach einer beliebigen Zeit ) und eine andere Spalte mit Werten der Kovariate ?
quelle
Antworten:
Anpassen eines stationären Poisson-Prozesses
Zuallererst ist es wichtig zu erkennen, welche Art von Eingabedaten NHPoisson benötigt.
Zuallererst benötigt NHPoisson eine Liste von Indizes von Ereignismomenten. Wenn wir das Zeitintervall und die Anzahl der Ereignisse in dem Zeitintervall aufzeichnen, müssen wir es in eine einzelne Datenspalte übersetzen und möglicherweise die Daten über das Intervall "verwischen", in dem sie aufgezeichnet wurden.
Der Einfachheit halber gehe ich davon aus, dass wir die in Sekunden gemessene Zeit verwenden und dass die "Sekunde" die natürliche Einheit von .λ
Simulieren wir Daten für einen einfachen, stationären Poisson-Prozess mit Ereignissen pro Minute:λ = 1
Das
simNHP.fun
macht die Simulation. Wir verwenden, umaux$posNH
eine Variable mit Indizes von Momenten des simulierten Ereignisauslösens zu erhalten. Wir können sehen, dass wir ungefähr 60 * 24 = 1440 Ereignisse haben, indem wir die Länge (aux $ posNH) überprüfen.Lassen Sie uns nun das mit :λ
fitPP.fun
fitPP
Was wir also in der Tat tun, ist, dass wir den Poisson-Prozess mit einer granularen Folge von Binomialereignissen approximieren , wobei jedes Ereignis genau eine Zeiteinheit umfasst, in Analogie zu dem Mechanismus, bei dem die Poisson-Verteilung als Grenze der Binomialverteilung im Gesetz angesehen werden kann seltener Ereignisse .
Sobald wir es verstanden haben, ist der Rest viel einfacher (zumindest für mich).
beta
exp(coef(out)[1])
NHPoisson
Anpassen eines instationären Poisson-Prozesses
NHPoisson
passt für folgendes Modell:Nun bereiten wir einen instationären Poisson-Prozess vor.
Wie zuvor
aux$posNH
würden wir Indizes von Ereignissen erhalten, aber dieses Mal werden wir feststellen, dass die Intensität der Ereignisse mit der Zeit exponentiell abnimmt. Und die Rate dieser Abnahme ist ein Parameter, den wir schätzen möchten.Es ist wichtig anzumerken, dass wir
all.seconds
als Kovariate setzen müssen, nichtlambdas
. Die Exponentiation / Logaritmisierung erfolgt intern durch diefitPP.fun
. Übrigens, abgesehen von den vorhergesagten Werten, erstellt die Funktion standardmäßig zwei Diagramme.Das letzte Stück ist eine Schweizer Messerfunktion zur Modellvalidierung
globalval.fun
.Unter anderem unterteilt die Funktion die Zeit in Intervalle, die jeweils
lint
lang sind, sodass grobe Diagramme erstellt werden können, die die vorhergesagte Intensität mit der beobachteten Intensität vergleichen.quelle