Schätzen von Parametern eines dynamischen linearen Modells


11

Ich möchte (in R) das folgende sehr einfache dynamische lineare Modell implementieren, für das ich 2 unbekannte zeitvariable Parameter habe (die Varianz des Beobachtungsfehlers und die Varianz des Zustandsfehlers ). ϵ 2 tϵt1ϵt2

Yt=θt+ϵt1θt+1=θt+ϵt2

Ich möchte diese Parameter zu jedem Zeitpunkt schätzen, ohne einen Blick nach vorne zu werfen . Soweit ich weiß, kann ich entweder eine MCMC (in einem rollenden Fenster, um die Vorausschau zu vermeiden) oder einen Partikelfilter (oder Sequential Monte Carlo - SMC) verwenden.

Welche Methode würden Sie verwenden und
welche Vor- und Nachteile haben diese beiden Methoden?

Bonusfrage: Wie wählen Sie bei diesen Methoden die Änderungsgeschwindigkeit der Parameter aus? Ich denke, wir müssen hier eine Information eingeben, weil es ein Schnäppchen zwischen der Verwendung vieler Daten zur Schätzung der Parameter und der Verwendung weniger Daten zur schnelleren Reaktion auf eine Änderung des Parameters gibt.


Meine Frage ähnelt der von stats.stackexchange.com/questions/2149/… . Ich habe absichtlich eine Frage erneut gestellt, da die Situation etwas anders ist und ich unterschiedliche Meinungen hätte. (Die Antwort von gd047 konzentrierte sich hauptsächlich auf nicht parfümierten Kalman-Filter (UKF))
RockScience

Seltsam, dass mein Kopfgeld nicht hilft ... Ist meine Frage schlecht formuliert ... Niemand hat eine Antwort? Oder eine Frage zu meiner Frage?
RockScience

Die Art und Weise, wie es gestellt wird, scheint ein entartetes Problem zu sein - die Fehler könnten gleichermaßen dem Beobachtungsrauschen oder dem Prozessrauschen zugeschrieben werden. Gibt es weitere Einschränkungen? Ist der Zustand eindimensional?
IanS

@lanS. Alle Objekte haben hier tatsächlich nur eine Dimension. Können Sie etwas mehr darüber entwickeln, dass die Fehler entweder Beobachtung oder Rauschen sein können. Genau das möchte ich erreichen. Ich möchte eine rollierende Schätzung des Signal-Rausch-Verhältnisses erhalten, indem
ich den SD

Vielleicht sollte ich zunächst den SD des Prozessrauschens korrigieren und sehen, wie der SD des Beobachtungsrauschens reagiert?
RockScience

Antworten:


4

Wenn Sie zeitlich variierende Parameter haben und die Dinge nacheinander ausführen möchten (Filtern), ist SMC am sinnvollsten. MCMC ist besser, wenn Sie alle Daten konditionieren möchten oder wenn Sie unbekannte statische Parameter haben, die Sie schätzen möchten. Partikelfilter haben Probleme mit statischen Parametern (Entartung).


1
Vielen Dank für Ihre Antwort. Wo kann ich lernen, wie man SMC macht und welches R-Paket würden Sie empfehlen?
RockScience

4

Schauen Sie sich das dlm- Paket und seine Vignette an . Ich denke, Sie finden vielleicht in der Vignette, wonach Sie suchen. Die Paketautoren haben auch ein Buch Dynamic Linear Models with R geschrieben .


@ Matti Pastell: Ich habe dieses Buch. Es ist in der Tat sehr gut. Meine Frage betrifft den Unterschied zwischen dem Partikelfilter (der meines Wissens eine sequentielle Version von MCMC ist) und einem MCMC in einem rollenden Fenster (in letzterem führen wir den Optimierungsprozess in einem rollenden Fenster erneut aus). Welche Methode sollte bevorzugt werden und warum?
RockScience

Außerdem finde ich es nicht einfach, dieses zeitlich variierende Modell mit dlm zu bauen. Ehrlich gesagt ist das Paket für nicht zeitlich veränderliche Modelle sehr einfach zu verwenden, aber für alles andere wird es schwieriger. Bearbeiten: Mit kniffliger meine ich, dass es keine Funktion gibt, um das Problem zu lösen. Sie müssen das Skript selbst codieren.
RockScience

1
OK, ich habe das Buch auch, aber ich hatte noch keine Zeit, es zu lesen. Entschuldigung, dass es bei Ihrem Problem nicht hilft.
Matti Pastell


3

Ich habe Dynamic Linear Models with R (gutes Buch) gelesen. Das letzte Kapitel befasst sich mit der sequentiellen Monte-Carlo / Partikelfilterung. Es enthält auch RCode; In den abschließenden Bemerkungen zu Kapitel 5 warnen sie jedoch ausdrücklich davor, dass SMC mit der Zeit immer unzuverlässiger wird, da sich die Fehler ansammeln. Daher empfehlen sie, den Partikelfilter mit der posterioren Verteilung aus einer vollständigen MCMC-Probe alle "aktualisieren"( 1000 × ( 50 - 1 ) × 10 ) ÷ 60 ÷ 24TPerioden. Vielleicht habe ich ihre Warnungen falsch verstanden, aber dies scheint zu bedeuten, dass Sie mit dem Rolling Window MCMC besser dran sind. Ich würde jedoch denken, dass es bei dieser Methode erhebliche Einschränkungen bei der Computerverarbeitung gibt. Angenommen, Sie hatten 1.000 verschiedene univariate Zeitreihen mit jeweils 50 Beobachtungen und es dauerte 10 Minuten, bis ein vollständiger MCMC Gibbs-Sampler ausgeführt wurde. Dann würden Sie 340 Tage ( ) der kontinuierlichen Verarbeitung , um die Parameter ohne Vorausschau-Verzerrung zu schätzen. Vielleicht ist meine Schätzung der Zeit, die zum Ausführen des MCMC benötigt wird, völlig falsch, aber ich denke, es ist eine konservative, aber vernünftige Schätzung.(1000×(501)×10)÷60÷24

Es ist einige Jahre her, seit Sie die Frage gestellt haben. Ich wäre gespannt, ob Sie jetzt selbst eine Antwort haben.

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.