Wie gehe ich mit unvollständigen Daten in Kalman Filter um?

8

Was sind einige typische Ansätze zum Umgang mit unvollständigen Daten im Kalman-Filter? Ich spreche von der Situation, in der einige Elemente des beobachteten Vektors fehlen, im dem Fall, in dem ein ganzer beobachteter Vektor . Eine andere Art, darüber nachzudenken, wäre, dass die Dimension des beobachteten Vektors für jeden Zeitpunkt unterschiedlich ist.y t pytytp

Um meinen Kontext etwas näher zu erläutern, sind die Beobachtungen geschätzte Parameter einer logistischen Regression, die zu jedem Zeitpunkt durchgeführt wird. Während jede logistische Regression dieselben Kovariaten enthält, sind die Schätzungen manchmal aufgrund von Kollinearitäten in den Daten für diesen Zeitpunkt undefiniert.

M. Berk
quelle

Antworten:

7

Was benötigt wird, ist einfach eine variable Beobachtungsmatrix, dh in der Beobachtungsgleichung: Matrix (und ) sollten zum Zeitpunkt die Zeilen weglassen, die den Einträgen in . Die meisten Pakete in R kümmern sich beispielsweise darum: Sie können die beobachteten multivariaten Zeitreihen mit Werten problemlos haben.

Yt=Atθt+Rtet
AtRttNAYtNA
F. Tusell
quelle
Möchte diese beste Antwort zur Aufmerksamkeit auf sich ziehen. Ich las das Buch Zeitreihenanalyse und ihre Anwendungen: Mit R-Beispielen von Robert Shumway, und in Kapitel 6 beschrieb der Autor die Art und Weise, wie fehlende Beobachtungen in werden, indem er mit Nullen gefüllt wird. Wie ist Ihre Methode zur Zeilen- / Spalteneliminierung mit dieser Methode zu vergleichen? Yt
Will Gu
Ich denke, beide Methoden sind gleichwertig. Beachten Sie jedoch, dass für das, was Shumway & Stoffer vorschlägt (und behauptet, es sei rechnerisch einfacher; ich denke, es hängt davon ab, welche Software Sie verwenden), nicht nur sondern auch andere Arrays mit Nullen gefüllt werden müssen (siehe Seite 347 oben) ( 6.79) der dritten Auflage). Yt
F. Tusell
1

Die einfachste Lösung besteht darin, nur einen beliebigen Messwert zu verwenden (der letzte gute ist der beste), aber die entsprechende Varianz des Messrauschens auf eine extrem große Zahl einzustellen. Tatsächlich wird die gefälschte Messung ignoriert. Der Kalman-Filter gleicht die Messunsicherheit gegen die Modellunsicherheit aus. In diesem Fall schätzen Sie nur anhand der Vorhersagen des Zustandsmodells und anderer Messkorrekturen. Solange die Messung nicht verfügbar ist, würde die Unsicherheit von Zuständen, die ohne diese Messung nicht mehr beobachtbar wären, mit der Zeit aufgrund von Prozessrauschen zunehmen. Das ist sehr realistisch - Ihr Vertrauen in Projektionen, die auf alten Messungen basieren, nimmt mit der Zeit kontinuierlich ab. (Dies gilt für diese Lösung oder für den Fall einer vorübergehenden Änderung der Filterstruktur, um die Messung zu eliminieren.)

Bei dieser Formulierung wird davon ausgegangen, dass Sie einen Kalman-Filter verwenden, der bei jedem Schritt sowohl den Status als auch die Kovarianzmatrix aktualisiert, nicht die stationäre Version. Dies ist der einfachste Ansatz, wenn Ihre Software noch keine spezielle Behandlung für nicht verfügbare Werte hat. (Und Software, bei der das Werthandling fehlt, kann dies möglicherweise auf diese Weise handhaben.) Dieser theoretische Ansatz sollte genau das Gleiche bewirken wie das Modifizieren der Messmatrixgröße und der Messkovarianzmatrixgröße. Eine Messung mit nahezu unendlicher Varianz liefert die gleichen Informationen wie überhaupt keine Messung. Auf diese Weise müssen Sie jedoch nicht die Struktur des Filters ändern oder alle Möglichkeiten speichern - es handelt sich nur um eine Parameteränderung (vorausgesetzt, der typische Fall, dass jeder Messrauschfehler unabhängig ist,

g
quelle