[PYTHON] Ich habe versucht, "Grundlagen der Zeitreihenanalyse und des Zustandsraummodells" (Hayamoto) mit Pystan zu implementieren

Was ich getan habe

Wer ist das Ziel dieses Artikels?

Einführung

Wenn Sie ein Einführungsbuch zur Zeitreihenanalyse nachschlagen, finden Sie immer "Grundlagen der Zeitreihenanalyse und Zustandsraummodelle: Theorie und Implementierung, die mit R und Stan gelernt wurden", das sogenannte Hayashimoto. In diesem Buch werden "Zeitreihenanalyse wie AR-Modell und MA-Modell", "Gaußsches lineares Zustandsraummodell" und "Zustandsraummodell durch Bayes'sche Schätzung" sehr detailliert erläutert. ** Die Sprachen R und Stan werden in dem Buch verwendet, was für jemanden wie mich, der nur Python verwenden kann, ein bisschen schmerzhaft ist. ** ** **

Sie können stan jedoch auch mit Python verwenden, um dasselbe wie im Buch beschrieben zu implementieren. ** Daher werde ich die Bayes'sche Schätzung von Hayashimotos Stan einführen, die tatsächlich mit Python implementiert wurde. ** ** **

Die Implementierung erfolgt mit Google Colab. In Google Colab kann es nur durch Importieren mit Pystan verwendet werden. Mit anderen Worten, es sind keine Anfangseinstellungen erforderlich, was sehr praktisch ist. ** Klicken Sie hier für den Code. ** ** ** https://github.com/nakanakana12/hayabusa-bon

Implementierungsergebnis

Bezüglich des Codes wird auf Github verwiesen, aber hier werde ich nur die Ergebnisse kurz vorstellen.

Modellschätzung auf lokaler Ebene von Stan

Das Ergebnis der Schätzung des Zustandsraums des Modells auf lokaler Ebene (zufälliges Gehen mit hinzugefügtem Rauschen) ist wie folgt. ダウンロード (11).png

Blau ist der Zustand und Orange ist der beobachtete Wert. Der mit Stan geschätzte 95% -Teil des Staates ist ein blaues Netz. Im Vergleich zu der Grafik im Buch scheint sie korrekt implementiert zu sein.

Anwendung: Modelle mit komplexen Beobachtungsgleichungen

Im nächsten Kapitel werden wir eine etwas komplexere Gleichung modellieren. Die blaue Linie ist der beobachtete Wert und die orange Linie ist der Wert, wenn kein Prozessfehler vorliegt. Dies ist auch korrekt implementiert. ダウンロード (13).png

Zusammenfassung

Ich hoffe es hilft dir sogar ein wenig.

Referenzseite

Recommended Posts

Ich habe versucht, "Grundlagen der Zeitreihenanalyse und des Zustandsraummodells" (Hayamoto) mit Pystan zu implementieren
Ich habe versucht, Zeitreihen zu analysieren! (AR-Modell)
Zeitreihenanalyse 4 Konstruktion des SARIMA-Modells
Übertragungsfunktion / Zustandsraummodell der RLC-Serienschaltung und Simulation von Python
Zeitreihenanalyse 1 Grundlagen
Einführung in die Zeitreihenanalyse ~ Saisonales Anpassungsmodell ~ In R und Python implementiert
"Zeitreihenanalyse von Wirtschafts- und Finanzdaten messen" Das Problem am Ende des Kapitels mit Python lösen
So extrahieren Sie Funktionen von Zeitreihendaten mit PySpark Basics
[Statistik] [Zeitreihenanalyse] Zeichnen Sie das ARMA-Modell und erfassen Sie die Tendenz.
Zeitreihenanalyse 3 Vorverarbeitung von Zeitreihendaten
Implementieren Sie ein Modell mit Status und Verhalten (3) - Beispiel für die Implementierung durch den Dekorateur
Zeitreihenanalyse 2 Stabilität, ARMA / ARIMA-Modell
Implementieren Sie ein Modell mit Status und Verhalten
Zeitreihenanalyse Nr. 6 Gefälschte Rückkehr und republikanischer Teil
Python: Zeitreihenanalyse: Erstellen eines SARIMA-Modells
Python: Zeitreihenanalyse: Konstanz, ARMA / ARIMA-Modell
Glättung von Zeitreihen und Wellenformdaten 3 Methoden (Glättung)
Zeigen Sie Details zu Zeitreihendaten mit Remotte an
Ich habe versucht, morphologische Analyse und Wortvektorisierung
Ich habe die Varianten von UKR gelesen und implementiert
Übertragungsfunktion / Zustandsraummodell des Feder- / Masse- / Dämpfersystems und Simulation von Python
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Ich habe versucht, Co-Filtering (Empfehlung) mit Redis und Python zu implementieren
Ich las "Grundlagen von Stromkreisen und Übertragungsleitungen"
Ich habe versucht, zum Zeitpunkt der Bereitstellung mit Fabric und ChatWork Api automatisch in ChatWork zu posten
Ich habe die gleiche Datenanalyse mit kaggle notebook (python) und PowerBI gleichzeitig versucht ②
Ich habe die gleiche Datenanalyse mit kaggle notebook (python) und PowerBI gleichzeitig versucht ①
[Grafikzeichnung] Ich habe versucht, ein mehrreihiges Balkendiagramm mit Matplotlib und Seaborn zu schreiben
Ich lernte die Grundlagen des intensiven Lernens und spielte mit Cart Pole (Implementierung von einfachem Q-Lernen).