Je n'avais pas une bonne implémentation de filtre de série chronologique en python, alors je l'ai fait moi-même.
J'ai implémenté ce qui suit.
Spécifiez les matrices suivantes $ F, G, Q, H, R $ lors de la création d'une instance.
x_{n+1} = F x_n + G v_n, \hspace{1em} v_n \sim N(O,Q) \\
y_n = H x_n + w_n, \hspace{2em} w_n \sim N(O,R)
Lors de la création d'une instance, spécifiez la méthode de transition d'état ʻupdate, la méthode de calcul de la vraisemblance logarithmique
loglikelihood et la méthode d'estimation d'état ʻestimate
.
x_{n+1} = F(x_n, v_n) \\
y_n = H(x_n) + w_n
Voir LISEZ-MOI pour savoir comment utiliser ryskiwt/tsfilter: Time Series Filtering
--Le modèle d'espace d'états peut être spécifié au moment de la génération afin qu'il puisse être utilisé universellement. ―― Faites attention autant que possible à la vitesse en allouant de la mémoire à l'avance et en évitant la copie de matrice. ――Au lieu de cela, je mange beaucoup de mémoire
Numba
――Je l'ai comparé à Cython, mais cela n'a pas tellement changé, alors j'ai choisi celui-ci.Recommended Posts