Comment gérer les données incomplètes dans Kalman Filter?

8

Quelles sont les approches typiques de traitement des données incomplètes dans le filtre de Kalman? Je parle de la situation où certains éléments du vecteur observé sont manquants, distinct du cas où un vecteur observé entier est manquant. Une autre manière de penser serait que la dimension du vecteur observé est différente pour chaque point temporel.ytytp

Pour expliquer un peu plus mon contexte, les observations sont des paramètres estimés à partir d'une régression logistique effectuée à chaque instant. Bien que chaque régression logistique comprenne les mêmes covariables, parfois les estimations ne sont pas définies en raison des colinéarités dans les données pour ce point dans le temps.

M. Berk
la source

Réponses:

7

Il suffit d'avoir une matrice d'observation variable, c'est-à-dire dans l'équation d'observation: matrice (et ) devrait omettre au temps les lignes correspondant aux entrées dans . La plupart des packages dans R, par exemple, s'en occuperont: vous pouvez avoir les séries temporelles multivariées observées avec des valeurs sans problème.

Yt=Atθt+Rtet
AtRttNAYtNA
F. Tusell
la source
Je souhaiterais attirer l'attention sur cette meilleure réponse. J'ai lu le livre Time Series Analysis and Its Applications: With R Examples de Robert Shumway, et dans le chapitre 6, l'auteur a décrit la façon de gérer les observations manquantes dans en remplissant avec des zéros. Comment votre méthode d'élimination des lignes / colonnes se compare-t-elle à cette méthode? Yt
Will Gu
Je pense que les deux méthodes sont équivalentes. Notez cependant que ce que Shumway & Stoffer propose (et prétend que c'est plus simple sur le plan informatique; je suppose que cela dépend du logiciel que vous utilisez) nécessite de remplir avec des zéros non seulement mais aussi d'autres tableaux (consultez leur page 347, juste au-dessus ( 6.79) de la troisième édition). Yt
F. Tusell
1

La solution la plus simple consiste à utiliser n'importe quelle valeur de mesure (la dernière bonne est la meilleure), mais à définir la variance du bruit de mesure correspondante sur un nombre extrêmement élevé. En effet, la fausse mesure sera ignorée. Le filtre de Kalman équilibre l'incertitude de mesure contre l'incertitude du modèle, et dans ce cas, vous estimez simplement en fonction de tout ce que le modèle d'état prédit ainsi que d'autres corrections de mesure. Tant que la mesure n'est pas disponible, tout état qui deviendrait inobservable sans cette mesure verrait son incertitude augmenter avec le temps en raison du bruit du processus. C'est très réaliste - votre confiance dans les projections basées sur d'anciennes mesures diminue continuellement avec le temps. (Cela est vrai pour cette solution ou dans le cas d'un changement temporaire de la structure du filtre pour éliminer la mesure).

Cette formulation suppose que vous utilisez un filtre de Kalman qui met à jour à la fois l'état et la matrice de covariance, et non la version en régime permanent. Il s'agit de l'approche la plus simple si votre logiciel ne dispose pas déjà d'une gestion spéciale pour les valeurs non disponibles. (Et un logiciel dont la gestion de la valeur est manquante pourrait bien le gérer de cette façon). Cette approche devrait en théorie accomplir exactement la même chose que la modification de la taille de la matrice de mesure et de la taille de la matrice de covariance de mesure. Une mesure avec une variance presque infinie fournit les mêmes informations qu'aucune mesure du tout. Mais de cette façon, il n'est pas nécessaire de changer la structure du filtre ou de stocker toutes les possibilités - ce n'est qu'un changement de paramètre (en supposant que le cas typique de chaque erreur de bruit de mesure soit indépendant,

gms
la source