Zum Hauptinhalt springen

Zustandsraummodelle: So funktionieren sie und wo sie eingesetzt werden

Erfahre, wie Zustandsraummodelle dynamische Systeme mit verborgenen Zuständen und Beobachtungen abbilden – inklusive Zustands- und Beobachtungsgleichungen, Kalman-Filterung und Zeitreihenanwendungen.
· 8 Min. lesen

Entdecke KI

Stell dir ein Schiff vor, das im Nebel navigiert. Das GPS ist verrauscht, die Meeresströmung unbekannt, und die exakte Position lässt sich nicht direkt messen. Sie kann nur aus Sensordaten angenähert werden. Zustandsraummodelle wurden genau für solche Probleme entwickelt: Systeme, bei denen das, worauf es ankommt, verborgen ist und dir nur unvollkommene Messungen davon zur Verfügung stehen.

Dieser Artikel erklärt die Struktur von Zustandsraummodellen, wie man verborgene Zustände durch Filterung und Glättung schätzt, wo der Kalman-Filter hineinpasst und wie du diese Modelle in Python und R umsetzt.

Was ist ein Zustandsraummodell?

Ein Zustandsraummodell ist ein mathematischer Rahmen, um ein System zu beschreiben, das sich über die Zeit durch Zustände verändert, die du nicht direkt beobachten kannst. Zwei Größen spielen zusammen: der Zustand, also die wahre, zugrunde liegende Information, die das System zu jedem Zeitpunkt beschreibt, und die Beobachtung, also die verrauschte, indirekte Messung, die du tatsächlich erhältst.

Das Modell legt zwei Dinge fest: wie sich der verborgene Zustand von einem Zeitschritt zum nächsten entwickelt und wie dieser verborgene Zustand die beobachteten Messungen erzeugt. Diese Trennung macht den Rahmen so universell. Er taucht in der Signalverarbeitung, Ökonometrie, Regelungstechnik und im Machine Learning auf – oft, ohne dass allen bewusst ist, dass sie innerhalb derselben formalen Struktur arbeiten.

So funktionieren Zustandsraummodelle

Die Kernlogik folgt in jedem Zeitschritt einer einfachen Abfolge:

Vorheriger Zustand → Aktueller Zustand → Beobachtung

Das System wechselt von seinem vorherigen verborgenen Zustand in einen neuen. Dieser Übergang kann Zufall enthalten, denn reale Systeme sind nicht perfekt vorhersagbar. Der neue Zustand erzeugt dann eine beobachtbare Messung, die ihr eigenes Rauschen mitbringt. Du siehst den Zustand nie direkt – du siehst nur das, was er hervorbringt, und das ist unvollkommen.

Was du kannst, ist, mit jeder neuen Beobachtung deine beste Schätzung des verborgenen Zustands zu aktualisieren. Das ist das Inferenzproblem – und genau dafür ist der meiste algorithmische Apparat rund um Zustandsraummodelle gedacht.

Verborgene Zustände erzeugen über die Zeit verrauschte Beobachtungen. Bild: Autor.

Zustands- und Beobachtungsgleichungen

Die Struktur des Modells lässt sich auf zwei Gleichungen herunterbrechen. Eine für die Zustandsdynamik, eine für das Messbare.

Zustandsgleichung

Die Zustandsgleichung beschreibt, wie sich der verborgene Zustand entwickelt. In Skalarform:

Hier ist zₜ der aktuelle verborgene Zustand, a erfasst die Übergangsdynamik (wie stark der vorherige Zustand fortwirkt), und wₜ ist der Prozessrauschterm – die Zufälligkeit in der Systembewegung. In der Matrixdarstellung für multivariate Systeme wird aus a eine Übergangsmatrix, die Idee bleibt identisch.

Beobachtungsgleichung

Die Beobachtungsgleichung verknüpft den verborgenen Zustand mit dem, was du misst:

yₜ ist die beobachtete Messung, c definiert die Beobachtungsbeziehung, und vₜ ist Messrauschen. Starte mit solchen Skalarversionen, bevor du dir die allgemeine Matrixform vornimmst. Die Matrizen erhöhen die Allgemeinheit, nicht die Grundidee.

Ein einfaches Beispiel für ein Zustandsraummodell

Denk an ein Auto, das sich entlang einer Straße bewegt. Seine wahre Position und Geschwindigkeit sind der verborgene Zustand. Du kannst sie nicht direkt beobachten. Was du hast, ist eine GPS-Messung – und die ist verrauscht. Die Zustandsgleichung modelliert, wie sich Position und Geschwindigkeit zwischen den Zeitschritten ändern (das Auto fährt ungefähr mit gleicher Geschwindigkeit weiter). Die Beobachtungsgleichung verknüpft die wahre Position mit der GPS-Messung, die um mehrere Meter danebenliegen kann.

Eine gute Visualisierung zeigt drei Linien: die wahre Position (glatt), die GPS-Messungen (um die Wahrheit gestreut) und die vom Modell geschätzte Position (nahe an der Wahrheit, etwas glatter als das rohe GPS). Genau diese dritte Linie ist der Job des Modells.

So werden Zustände geschätzt

Das Modell zu definieren ist nur die halbe Miete. Du musst die verborgenen Zustände auch aus den tatsächlich vorliegenden Beobachtungen erschließen. Drei Aufgaben decken das Feld ab:

Filterung schätzt den aktuellen Zustand nur mit Beobachtungen bis zum jetzigen Zeitpunkt – Echtzeit-Inferenz, nützlich für Tracking und Regelung. Glättung geht zurück und revidiert diese Schätzungen mithilfe von Beobachtungen vor und nach einem Zeitpunkt – in der Regel genauer, erfordert aber die komplette Sequenz. Prognose extrapoliert nach vorn und schätzt zukünftige Zustände, bevor Beobachtungen eintreffen.

Die meisten Anwendungen nutzen die Filterung. Glättung kommt ins Spiel, wenn du rückblickend analysierst und Genauigkeit wichtiger ist als Geschwindigkeit.

Kalman-Filterung und Zustandsraummodelle

Der Kalman-Filter ist der Algorithmus zur Filterung in linearen gaußschen Zustandsraummodellen. Wichtig ist die Präzision: Das Zustandsraummodell ist das Modell; der Kalman-Filter ist eine Inferenzmethode, die auf eine spezifische Klasse dieser Modelle anwendbar ist.

Der Filter arbeitet in zwei alternierenden Schritten. Im Prognoseschritt projiziert er die aktuelle Schätzung mithilfe der Zustandsgleichung in die Zukunft – inklusive eines Maßes für die Unsicherheit dieser Schätzung. Im Aktualisierungsschritt trifft eine neue Beobachtung ein und die Schätzung wird korrigiert. Wie stark sie sich verschiebt, hängt von der relativen Unsicherheit der Prognose gegenüber der Messung ab. Ist die Modellprognose zuverlässig, hat die Beobachtung weniger Einfluss. Ist das GPS-Signal sauber und das Modell unsicher, dominiert die Beobachtung. Diese unsicherheitsgewichtete Mischung macht den Kalman-Filter in der Praxis so wirkungsvoll.

Für nichtlineare oder nicht-gaußsche Fälle gibt es Erweiterungen: Der Extended Kalman Filter linearisiert die Dynamik, der Unscented Kalman Filter nutzt eine smartere Approximation, und Partikelfilter behandeln den voll allgemeinen Fall über Stichproben. Das wären eigene Artikel.

Arten von Zustandsraummodellen

Je nach Annahmen über Dynamik und Rauschen deckt der Rahmen eine Reihe von Szenarien ab.

Lineare gaußsche Zustandsraummodelle sind der klassische Fall: lineare Übergangs- und Beobachtungsgleichungen, gaußsches Rauschen. Kalman-Filterung ist direkt anwendbar und exakte Inferenz ist machbar.

Nichtlineare Zustandsraummodelle entstehen, wenn die Zustandsdynamik oder die Beobachtungsbeziehung nicht linear ist – denk an ein Pendel oder ein Modell, in dem Preiseffekte abflachen. Exakte Inferenz ist dann nicht mehr verfügbar.

Nicht-gaußsche Zustandsraummodelle verzichten auf die Annahme, dass das Rauschen normalverteilt ist. Zähldaten, binäre Ergebnisse und schwergewichtige Verteilungen fallen hierunter.

Zustandsraummodelle vs. verwandte Zeitreihenmodelle

Ein paar Vergleiche lohnen sich, denn die Grenzen sind unschärfer, als es zunächst scheint.

Zustandsraummodelle vs. ARIMA

ARIMA modelliert die beobachteten Werte und ihre vergangenen Fehler direkt, ohne einen verborgenen Zustand einzuführen. Zustandsraummodelle bringen latente Zustände explizit hinein. Allerdings lassen sich ARIMA-Modelle in Zustandsraumform umschreiben – die beiden sind also weniger getrennt, als es wirkt, und Software nutzt intern häufig Zustandsraumdarstellungen, um ARIMA überhaupt zu schätzen.

Zustandsraummodelle vs. Hidden-Markov-Modelle

Beide arbeiten mit verborgenen Zuständen. Klassische HMMs verwenden diskrete latente Zustände (das System befindet sich in einem von k Modi), während die meisten Zustandsraummodelle kontinuierliche Zustände nutzen. Für Spracherkennung sind diskrete Modi sinnvoll; beim Verfolgen physischer Objekte sind kontinuierliche Zustände die natürliche Wahl.

Zustandsraummodelle vs. strukturelle Zeitreihenmodelle

Strukturelle Zeitreihenmodelle (die eine Reihe in Trend, Saisonalität und Rest zerlegen) werden typischerweise als Zustandsraummodelle formuliert, statt mit ihnen zu konkurrieren. Sie sind ein spezieller Anwendungsfall des Rahmens.

Zustandsraummodelle in Python und R

Der Workflow ist in beiden Sprachen ähnlich – Modell definieren, schätzen und die verborgenen Zustände auslesen.

Zustandsraummodelle in Python

Die Bibliothek statsmodels bietet eine klare Schnittstelle zum Schätzen von Zustandsraummodellen. Hier wird ein Local-Level-Modell (das einfachste Strukturmodell, mit Zufallsgang-Zustand und verrauschten Beobachtungen) auf Zeitreihendaten gefittet:

import statsmodels.api as sm

# Fit a local level (random walk plus noise) model
model = sm.tsa.UnobservedComponents(time_series, level='local level')
result = model.fit(disp=False)

# Filtered state estimates (the hidden level at each time step)
print(result.filtered_state[0])

# Forecast the next 10 periods
forecast = result.forecast(10)

Die gefilterten Zustände geben dir die beste Schätzung des verborgenen Niveaus zu jedem Zeitpunkt. Das ist der wichtigste Output – nicht die Parameter an sich.

Zustandsraummodelle in R

In R deckt das Paket KFAS gaußsche Zustandsraummodelle ab und ist eine gute Wahl, wenn du regelmäßig in diesem Bereich arbeitest. Der Workflow spiegelt Python: Modellobjekt definieren, schätzen und geglättete oder gefilterte Zustände extrahieren. Interpretiere die Schätzungen der verborgenen Zustände – nicht nur Fit-Statistiken.

library(KFAS)

# Fit a local level (random walk plus noise) model
model <- SSModel(time_series ~ SSMtrend(1, Q = NA), H = NA)
fit <- fitSSM(model, inits = c(log(1), log(1)))
out <- KFS(fit$model)

# Filtered state estimates (the hidden level at each time step)
out$att

# Forecast the next 10 periods
predict(fit$model, n.ahead = 10)

Vorteile und Grenzen von Zustandsraummodellen

Wie bei den meisten Modellrahmen stammen Stärken und Schwächen aus demselben Umstand: Du legst dich vorab auf eine Struktur fest.

Vorteile: Sie bilden verborgene Prozesse explizit ab, statt sie zu überdecken. Sie eignen sich natürlich für Systeme, die sich über die Zeit verändern. Messunsicherheit ist im Modell verankert, nicht nachträglich angeflanscht. Und derselbe Rahmen unterstützt Filterung, Glättung und Prognosen, ohne die Modellstruktur zu ändern.

Grenzen: Die Modellspezifikation kann knifflig sein. Du musst entscheiden, was der verborgene Zustand bedeutet und wie er sich entwickelt – das erfordert echtes Domänenwissen. Für nichtlineare oder nicht-gaußsche Systeme wird die Inferenz teuer. Und wenn deine Annahmen über Dynamik oder Rauschen falsch sind, liegen die Schätzungen daneben – auf eine Weise, die nicht immer offensichtlich ist.

Fazit

Ein Zustandsraummodell beschreibt zwei Dinge: wie sich ein unbeobachteter Zustand über die Zeit entwickelt und wie dieser Zustand die beobachtbaren Messungen erzeugt. Das sind die Zustands- und die Beobachtungsgleichung. Alles andere (Kalman-Filterung, Glättung, Prognose) dient dazu, den verborgenen Zustand aus den vom Modell erzeugten Daten zu erschließen.

Nützlich an diesem Rahmen finde ich, dass er dich zwingt, explizit zu machen, was du nicht weißt. Statt die Beobachtungen direkt zu modellieren (wie ARIMA), musst du dich auf eine Geschichte über den zugrunde liegenden Prozess festlegen. Das ist eine Einschränkung, aber auch eine Klärung. Sobald du festgehalten hast, was der verborgene Zustand ist und wie er sich bewegt, wird das Inferenzproblem mechanisch. Das Schwierige war schon das Modellieren.

Wenn du aus der klassischen Zeitreihenanalyse kommst, lohnt es sich, Zustandsraummodelle aus ihrer eigenen Logik heraus zu verstehen – nicht nur als Verallgemeinerung dessen, was du schon kennst. Unser Time Series with Python course deckt das breitere Werkzeugset ab, und wenn Hidden-Markov-Modelle oder Kalman-Filterung dein nächster Schritt sind, überträgt sich das konzeptionelle Fundament direkt.

Vinod Chugani

Autor

Vinod Chugani

Vinod Chugani startete seine Karriere in Tokio als jüngster Head of Hedge Fund Sales Desk bei JPMorgan und stellte später bei Lehman Brothers einen individuellen Verkaufsrekord auf, baute danach ein Elektronikvertriebsunternehmen in 30 Ländern auf über 100 Mio. SG$ Umsatz aus und wechselte anschließend in die Datenwelt. Als Economics-Absolvent der Duke University und Alumni der NYC Data Science Academy war er einer von drei Stipendiaten unter mehr als 100 Bewerbenden für Hugo Bowne-Andersons Kurs "Building AI Applications" auf Maven. Heute schreibt er für DataCamp, KDnuggets, Machine Learning Mastery und Statology über Themen von Statistik bis agentischer KI und coacht Datenprofis an der NYC Data Science Academy mit über 1.000 Eins-zu-eins-Sessions.

 

FAQs

Was ist der Unterschied zwischen einem Zustandsraummodell und einem Zeitreihenmodell wie ARIMA?

ARIMA modelliert die Beziehungen zwischen beobachteten Werten und ihren vergangenen Fehlern direkt – es gibt keinen verborgenen Zustand. Zustandsraummodelle führen einen latenten Zustand ein, aus dem die Beobachtungen generiert werden. In der Praxis lassen sich viele Zeitreihenmodelle (einschließlich ARIMA) in Zustandsraumform schreiben – sie ergänzen sich also eher, als dass sie konkurrieren.

Muss ich Kalman-Filterung verstehen, um Zustandsraummodelle zu nutzen?

Nicht unbedingt – Bibliotheken wie statsmodels in Python und KFAS in R übernehmen die Filterung intern. Aber das Verständnis der Prognose-Aktualisierungs-Logik hilft dir, die Ergebnisse zu interpretieren und Probleme zu debuggen, wenn das Modell nicht gut passt.

Wann sollte ich Glättung statt Filterung verwenden?

Nutze Glättung, wenn du den vollständigen Datensatz hast und die genauesten Zustandschätzungen willst – für rückblickende Analysen, Anomalieerkennung oder zum Bereinigen historischer Reihen. Nutze Filterung, wenn du Echtzeitschätzungen brauchst, während Daten eintreffen.

Was passiert, wenn mein System nichtlinear ist?

Der Standard-Kalman-Filter ist dann nicht mehr exakt anwendbar. Gängige Alternativen sind der Extended Kalman Filter (linearisiert um die aktuelle Schätzung), der Unscented Kalman Filter (nutzt eine smartere Approximation) und Partikelfilter (ziehen Stichproben aus der Zustandsverteilung und funktionieren allgemein).

Wie entscheide ich, was im verborgenen Zustand enthalten sein soll?

Das ist der schwierige Teil – und eine Modellierungsentscheidung, keine rein statistische. Der verborgene Zustand sollte alles enthalten, was die nächste Beobachtung treibt und was du nicht direkt messen kannst. Für ein bewegtes Objekt sind das typischerweise Position und Geschwindigkeit. Für eine ökonomische Reihe könnten es ein zugrunde liegender Trend und eine saisonale Komponente sein. Starte einfach und füge nur dann Komplexität hinzu, wenn das einfache Modell klar versagt.

Können Zustandsraummodelle fehlende Beobachtungen handhaben?

Ja, und das ist ein echter Vorteil gegenüber Methoden wie ARIMA. Fehlt eine Beobachtung, überspringt der Filter einfach den Aktualisierungsschritt und propagiert die Prognose weiter. Die Unsicherheit steigt während der Lücke ganz natürlich an – genau das richtige Verhalten.

Was ist der Zusammenhang zwischen Zustandsraummodellen und Deep-Learning-Sequenzmodellen wie LSTMs?

Beide modellieren sequenzielle Daten mit verborgenem Zustand, aber damit endet der Vergleich. LSTMs lernen die Zustandsdynamik rein datengetrieben und ohne interpretierbare Struktur; Zustandsraummodelle spezifizieren die Dynamik explizit und liefern Unsicherheitsmaße. Für Interpretierbarkeit und kleine Datensätze sind Zustandsraummodelle oft nützlicher. Bei großen Datensätzen mit komplexen Mustern gewinnen neuronale Ansätze häufig in der reinen Performance.

Ist der verborgene Zustand immer eindimensional?

Nein. Der Zustand kann ein Vektor beliebiger Dimension sein. Im Beispiel des bewegten Objekts ist der Zustand zweidimensional: Position und Geschwindigkeit. In komplexeren Strukturmodellen kann der Zustand gleichzeitig einen Trend, mehrere saisonale Komponenten und einen Regressionsanteil enthalten. Die Matrixformulierung handhabt all das einheitlich.

Themen

Ähnlich

Tutorial

OLS-Regression: Die wichtigsten Ideen erklärt