[PYTHON] J'ai essayé d'implémenter "Bases de l'analyse des séries temporelles et du modèle d'espace d'état" (Hayamoto) avec pystan

Ce que j'ai fait

Qui est la cible de cet article

introduction

Chaque fois que vous recherchez un livre d'introduction à l'analyse de séries chronologiques, vous trouverez toujours "Bases de l'analyse des séries temporelles et des modèles d'espace d'état: théorie et implémentation apprises avec R et Stan", ce qu'on appelle Hayashimoto. Dans ce livre, «l'analyse de séries temporelles comme le modèle AR et le modèle MA», le «modèle d'espace d'états linéaire gaussien» et le «modèle d'espace d'états par estimation bayésienne» sont expliqués de manière très détaillée. ** Les langages R et stan sont utilisés dans le livre, ce qui est un peu pénible pour quelqu'un comme moi qui ne peut utiliser que python. ** **

Cependant, vous pouvez également utiliser stan avec python, afin de pouvoir implémenter la même chose que celle présentée dans le livre. ** Par conséquent, je vais introduire l'estimation bayésienne par stan de Hayashimoto, qui a été en fait implémentée en utilisant python. ** **

La mise en œuvre se fait à l'aide de google colab. Dans google colab, il ne peut être utilisé que par importation par pystan. En d'autres termes, aucun réglage initial n'est requis, ce qui est très pratique. ** Cliquez-ici pour le code. ** ** https://github.com/nakanakana12/hayabusa-bon

Résultat de la mise en œuvre

En ce qui concerne le code, reportez-vous à github, mais ici je ne présenterai brièvement que les résultats.

Estimation du modèle au niveau local par Stan

Le résultat de l'estimation de l'espace d'états du modèle de niveau local (marche aléatoire avec bruit ajouté) est le suivant. ダウンロード (11).png

Le bleu est l'état et l'orange la valeur observée. La section à 95% de l'état estimée à l'aide de stan est un filet bleu. Comparé au graphique du livre, il semble être correctement implémenté.

Application: Modèles avec équations d'observation complexes

Dans le chapitre suivant, nous modéliserons une équation légèrement plus complexe. La ligne bleue correspond à la valeur observée et la ligne orange correspond à la valeur en l'absence d'erreur de processus. Ceci est également mis en œuvre correctement. ダウンロード (13).png

Résumé

J'espère que cela vous aide même un peu.

Site de référence

Recommended Posts

J'ai essayé d'implémenter "Bases de l'analyse des séries temporelles et du modèle d'espace d'état" (Hayamoto) avec pystan
J'ai essayé l'analyse de séries chronologiques! (Modèle AR)
Analyse des séries chronologiques 4 Construction du modèle SARIMA
Fonction de transmission / modèle d'espace d'état du circuit série RLC et simulation par Python
Analyse des séries chronologiques 1 Principes de base
Introduction à l'analyse des séries temporelles ~ Modèle d'ajustement saisonnier ~ Implémenté en R et Python
"Analyse des séries chronologiques de mesure des données économiques et financières" Résolution du problème de fin de chapitre avec Python
Comment extraire des fonctionnalités de données de séries chronologiques avec les bases de PySpark
[Statistiques] [Analyse des séries chronologiques] Tracez le modèle ARMA et saisissez la tendance.
Analyse des séries chronologiques 3 Prétraitement des données des séries chronologiques
Implémenter un modèle avec état et comportement (3) - Exemple d'implémentation par décorateur
Analyse des séries chronologiques 2 Stabilité, modèle ARMA / ARIMA
Implémenter un modèle avec état et comportement
Analyse des séries chronologiques n ° 6 Faux retour et partie républicaine
Python: analyse des séries temporelles: création d'un modèle SARIMA
Python: Analyse des séries temporelles: Constantity, modèle ARMA / ARIMA
Lissage des séries temporelles et des données de forme d'onde 3 méthodes (lissage)
Voir les détails des données de séries chronologiques dans Remotte
J'ai essayé l'analyse morphologique et la vectorisation de mots
J'ai lu et implémenté les variantes de UKR
Fonction de transmission / modèle d'espace d'état du système ressort / masse / amortisseur et simulation par Python
Je voulais juste extraire les données de la date et de l'heure souhaitées avec Django
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
J'ai essayé de mettre en œuvre le co-filtrage (recommandation) avec redis et python
J'ai lu "Bases des circuits électriques et des lignes de transmission"
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
J'ai essayé la même analyse de données avec kaggle notebook (python) et PowerBI en même temps ②
J'ai essayé la même analyse de données avec kaggle notebook (python) et PowerBI en même temps ①
[Dessin graphique] J'ai essayé d'écrire un graphique à barres multi-séries avec matplotlib et seaborn
J'ai appris les bases de l'apprentissage intensif et joué avec Cart Pole (implémentation simple de Q Learning)