Accéder au contenu principal

Modèles d'état-espace : fonctionnement et cas d'usage

Découvrez comment les modèles d'état-espace représentent des systèmes dynamiques via des états cachés et des observations, avec les équations d’état et d’observation, le filtrage de Kalman et des applications en séries temporelles.
· 8 min lire

Explorez l'IA

Imaginez un navire qui avance dans le brouillard. Son GPS est bruyant, le courant marin est inconnu et sa position exacte ne peut pas être mesurée directement. Elle ne peut être qu’estimée à partir de capteurs. Les modèles d'état-espace ont été conçus précisément pour ce type de problème : des systèmes où ce qui vous intéresse est caché et où vous n’avez accès qu’à des mesures imparfaites.

Cet article présente la structure des modèles d'état-espace, comment estimer les états cachés par filtrage et lissage, où se place le filtre de Kalman, et comment implémenter ces modèles en Python et en R.

Qu'est-ce qu'un modèle d'état-espace ?

Un modèle d'état-espace est un cadre mathématique pour décrire un système qui évolue dans le temps au travers d’états que vous ne pouvez pas observer directement. Deux grandeurs entrent en jeu : l’état, qui est l’information véritable décrivant le système à un instant donné, et l’observation, qui est la mesure indirecte et bruitée que vous obtenez réellement.

Le modèle spécifie deux éléments : comment l’état caché évolue d’un pas de temps au suivant, et comment cet état caché produit les observations que vous voyez. Cette séparation rend le cadre très général. On la retrouve en traitement du signal, économétrie, systèmes de contrôle et apprentissage automatique, souvent sans que l’on réalise que tous travaillent dans la même structure formelle.

Comment fonctionnent les modèles d'état-espace

La logique centrale suit une séquence simple à chaque pas de temps :

État précédent → État courant → Observation

Le système passe d’un état caché à un autre. Cette transition peut inclure de l’aléa, car les systèmes réels ne sont pas parfaitement prédictibles. Le nouvel état génère ensuite une mesure observable, avec son propre bruit. Vous ne voyez jamais l’état directement ; vous voyez ce qu’il produit, de manière imparfaite.

Ce que vous pouvez faire, c’est utiliser chaque nouvelle observation pour mettre à jour votre meilleure estimation de l’état caché. C’est le problème d’inférence, au cœur de l’outillage algorithmique des modèles d’état-espace.

Des états cachés génèrent des observations bruitées au fil du temps. Image de l’auteur.

Équations d’état et d’observation

La structure du modèle se résume à deux équations : l’une pour l’évolution de l’état, l’autre pour ce que vous pouvez mesurer.

Équation d’état

L’équation d’état décrit l’évolution de l’état caché. En forme scalaire :

Ici, zₜ est l’état caché courant, a capture la dynamique de transition (le degré de persistance de l’état précédent) et wₜ est le bruit de processus — l’aléa dans le mouvement du système. En formulation matricielle pour les systèmes multivariés, a devient une matrice de transition, mais l’idée reste identique.

Équation d’observation

L’équation d’observation relie l’état caché à ce que vous mesurez :

yₜ est la mesure observée, c définit la relation d’observation, et vₜ est le bruit de mesure. Commencez par ces versions scalaires avant de vous soucier de la forme matricielle générale. Les matrices apportent de la généralité, pas de nouvelles idées.

Un exemple simple de modèle d'état-espace

Pensez à une voiture qui se déplace sur la route. Sa position et sa vitesse réelles constituent l’état caché. Vous ne pouvez pas les observer directement. Vous disposez d’un relevé GPS, qui est bruité. L’équation d’état modélise l’évolution de la position et de la vitesse entre deux instants (la voiture continue à peu près à la même vitesse). L’équation d’observation relie la position réelle au relevé GPS, qui peut être décalé de plusieurs mètres.

Une bonne visualisation montre trois courbes : la position réelle (lisse), les relevés GPS (dispersés autour de la vérité) et la position estimée par le modèle (proche de la vérité, plus lisse que le GPS brut). Obtenir cette troisième courbe, c’est tout l’enjeu du modèle.

Comment les états sont estimés

Définir le modèle n’est que la moitié du travail. Il faut aussi inférer les états cachés à partir des observations réelles. Trois tâches couvrent le sujet :

Filtrage : estimer l’état courant en utilisant uniquement les observations jusqu’à maintenant — inférence en temps réel, utile pour le suivi et le contrôle. Lissage : revenir en arrière et réviser ces estimations à l’aide des observations d’avant et d’après un point donné — en général plus précis, mais requiert la séquence complète. Prédiction : extrapoler pour estimer des états futurs avant l’arrivée des observations.

La plupart des usages reposent sur le filtrage. Le lissage intervient pour des analyses rétrospectives où la précision prime sur la rapidité.

Filtrage de Kalman et modèles d'état-espace

Le filtre de Kalman est l’algorithme de filtrage pour les modèles d'état-espace linéaires gaussiens. Précisons-le : le modèle d'état-espace est le modèle ; le filtre de Kalman est une méthode d’inférence qui s’applique à une classe spécifique de ces modèles.

Le filtre alterne deux étapes. À l’étape de prédiction, il projette dans le temps l’estimation actuelle via l’équation d’état, avec une mesure d’incertitude. À l’étape de mise à jour, une nouvelle observation arrive et l’estimation est corrigée. L’ampleur du ajustement dépend de l’incertitude relative de la prédiction face à la mesure. Si la prédiction du modèle est fiable, l’observation pèse moins. Si le signal GPS est propre et le modèle incertain, l’observation domine. Ce mélange pondéré par l’incertitude fait la force du filtre de Kalman en pratique.

Des extensions existent pour les contextes non linéaires ou non gaussiens : le filtre de Kalman étendu linéarise la dynamique, le filtre de Kalman unscented propose une meilleure approximation, et les filtres particulaires traitent le cas général par échantillonnage. Ce seront d’autres articles.

Types de modèles d'état-espace

Le cadre couvre divers contextes selon les hypothèses posées sur la dynamique et le bruit.

Modèles d'état-espace linéaires gaussiens : cadre classique avec équations de transition et d’observation linéaires, bruit gaussien. Le filtrage de Kalman s’applique directement et l’inférence exacte est traitable.

Modèles d'état-espace non linéaires : la transition d’état ou la relation d’observation n’est pas linéaire — pensez à un pendule, ou à un modèle où l’effet prix s’atténue. L’inférence exacte n’est plus disponible.

Modèles d'état-espace non gaussiens : on abandonne l’hypothèse de bruit normal. Données de comptage, issues binaires et processus à queues épaisses entrent dans cette catégorie.

Modèles d'état-espace vs. modèles de séries temporelles apparentés

Quelques comparaisons utiles, car les frontières sont plus floues qu’il n’y paraît.

Modèles d'état-espace vs. ARIMA

ARIMA modélise directement les valeurs observées et leurs erreurs passées, sans introduire d’état caché. Les modèles d'état-espace introduisent explicitement des états latents. Cela dit, les modèles ARIMA peuvent être reformulés en état-espace — les deux ne sont donc pas aussi distincts qu’on le pense, et les logiciels utilisent souvent des représentations état-espace pour ajuster ARIMA.

Modèles d'état-espace vs. modèles de Markov cachés

Les deux impliquent des états cachés. Les HMM classiques utilisent des états latents discrets (le système est dans l’un de k modes), tandis que la plupart des modèles d'état-espace utilisent des états continus. Pour la reconnaissance vocale, des modes discrets ont du sens ; pour le suivi d’un objet physique, des états continus sont plus naturels.

Modèles d'état-espace vs. modèles structurels de séries temporelles

Les modèles structurels (qui décomposent une série en tendance, saisonnalité et composante irrégulière) sont généralement formulés comme des modèles d'état-espace plutôt que de leur faire concurrence. Ce sont un cas d’usage spécifique du cadre.

Modèles d'état-espace en Python et R

Le flux de travail est similaire dans les deux langages — définir le modèle, l’ajuster et extraire les estimations d’état caché.

Modèles d'état-espace en Python

La bibliothèque statsmodels propose une interface claire pour ajuster des modèles d'état-espace. Voici un modèle à niveau local (le plus simple des modèles structurels, avec une marche aléatoire pour l’état et des observations bruitées) ajusté à des données de séries temporelles :

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)

L’état filtré fournit la meilleure estimation par le modèle du niveau caché à chaque instant. C’est la sortie principale qui compte, plus que les paramètres eux-mêmes.

Modèles d'état-espace en R

En R, le package KFAS gère les modèles d'état-espace gaussiens et vaut la peine d’être connu si vous travaillez régulièrement sur ce sujet. Le flux de travail reflète celui de Python : définir un objet modèle, l’ajuster, puis extraire les états lissés ou filtrés. Interprétez les estimations d’état caché, pas seulement les statistiques d’ajustement.

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)

Atouts et limites des modèles d'état-espace

Comme pour la plupart des cadres de modélisation, forces et faiblesses découlent du même point : il faut s’engager sur une structure dès le départ.

Atouts : ils représentent explicitement les processus cachés plutôt que de les masquer. Ils gèrent naturellement des systèmes qui évoluent dans le temps. L’incertitude de mesure est intégrée au modèle, pas traitée après coup. Et le même cadre permet filtrage, lissage et prévision sans changer la structure du modèle.

Limites : la spécification du modèle peut être difficile. Vous devez décider ce que signifie l’état caché et comment il évolue, ce qui exige une vraie expertise métier. Pour les systèmes non linéaires ou non gaussiens, l’inférence devient coûteuse. Et si vos hypothèses sur la dynamique ou le bruit sont erronées, les estimations le seront aussi, parfois de manière peu évidente.

Conclusion

Un modèle d'état-espace décrit deux choses : comment un état non observé évolue dans le temps, et comment cet état produit les observations mesurables. Ce sont l’équation d’état et l’équation d’observation. Tout le reste (filtre de Kalman, lissage, prédiction) concerne l’inférence de l’état caché à partir des données générées par le modèle.

L’intérêt de ce cadre est qu’il vous oblige à expliciter ce que vous ne savez pas. Plutôt que de modéliser les observations directement (comme ARIMA), vous devez vous engager sur une histoire du processus sous-jacent. C’est une contrainte, mais aussi une clarification. Une fois que vous avez posé ce qu’est l’état caché et comment il évolue, l’inférence devient mécanique. Le plus dur était déjà la modélisation.

Si vous venez des méthodes classiques de séries temporelles, les modèles d'état-espace méritent d’être compris pour eux-mêmes plutôt que comme une généralisation de ce que vous savez déjà. Notre cours Time Series with Python couvre la boîte à outils plus large, et si les modèles de Markov cachés ou le filtrage de Kalman sont votre prochaine étape, les bases conceptuelles présentées ici s’y transfèrent directement.

Vinod Chugani

Auteur

Vinod Chugani

Vinod Chugani a débuté sa carrière à Tokyo comme plus jeune responsable du desk ventes hedge funds de JPMorgan, puis a signé un record de ventes individuel chez Lehman Brothers, avant de développer une activité de distribution d’électronique présente dans 30 pays, dépassant les 100 millions SG$ de chiffre d’affaires, puis de se tourner vers la data. Diplômé en économie de Duke et ancien élève de la NYC Data Science Academy, il a fait partie des trois lauréats de bourse sur plus de 100 candidatures pour le cours Building AI Applications de Hugo Bowne-Anderson sur Maven. Aujourd’hui, il écrit pour DataCamp, KDnuggets, Machine Learning Mastery et Statology, sur des sujets allant des statistiques à l’IA agentique, et accompagne des professionnels de la data à la NYC Data Science Academy, avec plus de 1 000 séances individuelles à son actif.

 

FAQ

Quelle est la différence entre un modèle d'état-espace et un modèle de séries temporelles comme ARIMA&nbsp;?

ARIMA modélise directement les relations entre valeurs observées et erreurs passées — il n’y a pas d’état caché. Les modèles d'état-espace introduisent un état latent à partir duquel les observations sont générées. En pratique, de nombreux modèles de séries temporelles (y compris ARIMA) peuvent s’écrire sous forme état-espace ; ils sont donc davantage complémentaires que concurrents.

Dois-je comprendre le filtrage de Kalman pour utiliser des modèles d'état-espace&nbsp;?

Pas pour les utiliser — des bibliothèques comme statsmodels en Python et KFAS en R gèrent le filtrage en interne. Mais comprendre la logique prédiction–mise à jour aide à interpréter les résultats et à diagnostiquer les problèmes quand le modèle s’ajuste mal.

Quand utiliser le lissage plutôt que le filtrage&nbsp;?

Utilisez le lissage si vous avez l’ensemble des données et recherchez l’estimation d’état la plus précise — analyse rétrospective, détection d’anomalies ou nettoyage d’une série historique. Utilisez le filtrage si vous avez besoin d’estimations en temps réel à mesure que les données arrivent.

Que se passe-t-il si mon système est non linéaire&nbsp;?

Le filtre de Kalman standard ne s’applique plus exactement. Les alternatives courantes sont le filtre de Kalman étendu (linéarisation autour de l’estimation courante), le filtre de Kalman unscented (approximation plus fine) et les filtres particulaires (échantillonnage de la distribution d’état pour le cas général).

Comment choisir ce qu’il faut inclure dans l’état caché&nbsp;?

C’est la partie difficile — et c’est une décision de modélisation, pas de statistique. L’état caché doit contenir tout ce qui détermine la prochaine observation et que vous ne pouvez pas mesurer directement. Pour un objet en mouvement, c’est typiquement position et vitesse. Pour une série économique, cela peut être une tendance sous-jacente et une composante saisonnière. Commencez simple et n’ajoutez de la complexité que si le modèle simple échoue clairement.

Les modèles d'état-espace gèrent-ils les observations manquantes&nbsp;?

Oui, et c’est l’un de leurs vrais atouts par rapport à des méthodes comme ARIMA. Lorsqu’une observation manque, le filtre saute simplement l’étape de mise à jour et propage la prédiction. L’incertitude augmente naturellement pendant le trou, ce qui est exactement le bon comportement.

Quel est le lien entre modèles d'état-espace et modèles de séquences profonds comme les LSTM&nbsp;?

Les deux modélisent des données séquentielles avec état caché, mais la comparaison s’arrête là. Les LSTM apprennent la dynamique d’état à partir des données sans structure interprétable ; les modèles d'état-espace spécifient explicitement la dynamique et produisent des estimations d’incertitude. Pour l’interprétabilité et les petits jeux de données, les modèles d'état-espace sont souvent plus utiles. Pour de grands volumes avec des motifs complexes, les approches neuronales l’emportent souvent en performance brute.

L’état caché est-il toujours unidimensionnel&nbsp;?

Non. L’état peut être un vecteur de n’importe quelle taille. Dans l’exemple de l’objet en mouvement, l’état est bidimensionnel : position et vitesse. Dans des modèles structurels plus complexes, l’état peut inclure une tendance, plusieurs saisonnalités et un terme de régression simultanément. La formulation matricielle gère tout cela de façon uniforme.

Sujets

Contenus associés

Tutoriel

Régression MCO : Les idées clés expliquées