[PYTHON] Analyse des séries chronologiques 4 Construction du modèle SARIMA

Aidemy 2020/10/29

introduction

Bonjour, c'est Yope! Je suis une école littéraire croustillante, mais j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Merci! Ceci est le quatrième article de la prochaine analyse de la série. Ravi de vous rencontrer.

Quoi apprendre cette fois ・ Construction du modèle SARIMA

À propos du modèle SARIMA

-Le modèle __SARIMA __ est un modèle dans lequel ARIMA (p, d, q), qui convertit les données en une série de différences de pas, peut également être utilisé pour des séries temporelles avec un cycle __saisonnier. -Le modèle SARIMA a un paramètre appelé __SARIMA (sp, sd, sq, s) __.

sp,sd,sq -__ Sp, sd, sq__ sont appelés respectivement __ "autocorrélation saisonnière", "dérivation saisonnière" et "moyenne mobile saisonnière" __, et sont fondamentalement les mêmes que p, d, q d'ARIMA. ・ Il a été ajouté que les données de sp, sd et sq sont influencées par les données de la période saisonnière passée. -L'autre paramètre de SARIMA, __ "s" __, représente __ cycle saisonnier __. S'il s'agit d'un cycle de 12 mois, s = 12 doit être défini. -Pour sq, il indique le nombre de cycles avant la "période saisonnière passée" affectée.

Déterminer les paramètres

-Il est nécessaire de vérifier les valeurs appropriées pour les paramètres ci-dessus. ・ À ce stade, __information montant standard __ est utilisé. Cette fois, j'utiliserai __ "BIC" __. Cependant, cette fois, nous ne traiterons pas cela en détail. ・ Plus la valeur BIC est basse, plus la valeur du paramètre est appropriée.

Visualisation du coefficient d'autocorrélation / coefficient d'autocorrélation partielle

-__ L'autocorrélation partielle __ est __ sans l'influence des données entre les deux valeurs qui effectuent l'autocorrélation __. -Par exemple, l'autocorrélation partielle entre y1 et y7 est obtenue en supprimant l'influence de y2 à y6 entre eux. -En visualisant cette autocorrélation partielle, la valeur optimale du paramètre __ "s" est définie __. -Une fois visualisée, la valeur de l'autocorrélation partielle devient élevée dans la partie __period, donc cela devrait être la valeur de s.

・ La visualisation (graphique) de l'autocorrélation partielle est effectuée comme suit. __sm.graphics.tsa.plot_pacf (données) __

・ Code (visualisation de la corrélation des données de vente de vin)![Screenshot 2020-10-29 14.27.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/ 0/698700 / 81b92856-d4b8-1d98-03e7-28261cb8cabc.png)

・ Résultat![Capture d'écran 2020-10-29 14.28.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/3e5a9a67-eb31-5839- b557-ebc383e407e3.png)

Construction du modèle SARIMA

・ Procédure de construction ① __Lecture des données __: pd.read_csv () ② __Organisation des données __: pd.date_range () ③ __Visualisation des données __: sm.graphics.tsa.plot_pacf () ④ __Capture (s) du (des) cycle (s) de données __: De ④. ⑤ Paramètres de paramètres autres que __s __: saisir avec BIC --Nouvelle partie d'ici-- ⑥ __ Construction du modèle __: __ sm.tsa.statespace.SARIMAX (). Fit () __ ⑦ __Prédiction / visualisation des données __: __ predict () __ / plt.show ()

・ ⑥ Les arguments de SARIMAX () pour la construction du modèle sont les suivants. __SARIMAX (données, ordre = (p, d, q), ordre_saisonnier = (sp, sd, sq, s)) __

・ ⑦ La prédiction () de la prédiction de données est la suivante. Seul le début de la prédiction doit être l'heure dans les données de la série chronologique. __ Model.predict ("Au début de la prédiction", "À la fin de la prédiction") __

・ Une série d'exécution de code (⑤ n'est pas effectuée)![Capture d'écran 2020-10-29 14.31.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/ 0/698700 / cfbcbcc9-9b7b-6a92-d24d-327dfa3f1d97.png)

・ Résultat![Capture d'écran 2020-10-29 14.32.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/63b27173-80e3-81fd- 6f4f-d68be98d37b5.png)

Sommaire

-__ SARIMA model__ est un modèle qui rend ARIMA (p, d, q), qui convertit les données en une série de différences, également compatible avec les séries temporelles avec un cycle saisonnier. -Le modèle SARIMA a des paramètres __ (sp, sd, sq, s) __. ・ Pour sp, sd et sq, vérifiez les valeurs appropriées en utilisant la norme __information amount __ appelée BIC. ・ S est examiné en traçant __ autocorrélation partielle __. -Passez ces paramètres à __sm.tsa.statespace.SARIMAX (). Fit () __ pour créer un modèle et faire des prédictions avec __predict () __.

Cette fois, c'est fini. Merci d'avoir lu jusqu'à la fin.

Recommended Posts

Analyse des séries chronologiques 4 Construction du modèle SARIMA
Python: analyse des séries temporelles: création d'un modèle SARIMA
Analyse des séries chronologiques 3 Prétraitement des données des séries chronologiques
J'ai essayé l'analyse de séries chronologiques! (Modèle AR)
Python: analyse des séries chronologiques
Analyse des séries chronologiques RNN_LSTM1
Analyse des séries chronologiques 1 Principes de base
Python: Analyse des séries temporelles: Constantity, modèle ARMA / ARIMA
Puissance des méthodes de prédiction dans l'analyse de données chronologiques Semi-optimisation (SARIMA) [Memo]
Analyse des séries chronologiques partie 4 VAR
Analyse de séries chronologiques Partie 3 Prévisions
Analyse de séries chronologiques Partie 1 Autocorrélation
Construction du modèle de prédiction ①
Construction du modèle de prédiction ①
estimation personnelle en temps réel (construction d'un nouveau modèle)
Prix des maisons Kaggle ② ~ Modélisation ~
Analyse des séries chronologiques 4 Construction du modèle SARIMA
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
Calcul de la fidélité des clients dans les séries chronologiques
Python: analyse des séries chronologiques: prétraitement des données des séries chronologiques
Analyse des séries chronologiques
Différenciation des données de séries chronologiques (discrètes)
[Statistiques] [Analyse des séries chronologiques] Tracez le modèle ARMA et saisissez la tendance.
Analyse des séries chronologiques Partie 2 AR / MA / ARMA
[Python] Accélère le chargement du fichier CSV de séries chronologiques
Analyse des séries chronologiques n ° 6 Faux retour et partie républicaine
Construction du modèle de prédiction ①
Analyse de la variation temporelle des trous noirs en utilisant Python
mesure du temps
Raccourcir le temps d'analyse d'Openpose à l'aide du son
Décomposition des séries temporelles
Acquisition de données chronologiques (quotidiennes) des cours des actions
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
Introduction à l'analyse des séries temporelles ~ Modèle d'ajustement saisonnier ~ Implémenté en R et Python
Python 3.4 Créer un environnement Windows7-64bit (pour l'analyse des séries chronologiques financières)
Détection d'anomalies des données de séries chronologiques par LSTM (Keras)
"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
Question sur la série chronologique Python
Ce que vous ne devriez pas faire dans le processus d'analyse des données de séries chronologiques (y compris la réflexion)
Bases de l'analyse de régression
Mesure du temps d'exécution
Afficher les séries chronologiques TOPIX
Diagramme de séries chronologiques / Matplotlib
Défi des prévisions de ventes futures: ② Analyse des séries chronologiques à l'aide de PyFlux
Une méthode d'étude pour les débutants pour apprendre l'analyse des séries chronologiques
Reformatez l'axe des temps du graphique de la série chronologique des pandas avec matplotlib
Visualisation du changement de temps (spectrogramme) de l'analyse de fréquence (FFT) avec scipy
Une histoire de regroupement de données de séries chronologiques d'échange
Défi des prévisions de ventes futures: ⑤ Analyse des séries chronologiques par Prophet
Défi pour les prévisions de ventes futures: ① Qu'est-ce que l'analyse des séries chronologiques?
Analyse de séries temporelles par modèle général d'espace d'états gaussien à l'aide de Python [Exemple d'implémentation considérant extrinsèque et saisonnalité]
Un débutant qui programme depuis 2 mois a tenté d'analyser le PIB réel du Japon en séries chronologiques avec le modèle SARIMA.