Aidemy 2020/10/29
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 troisième article de l'analyse des séries chronologiques. Ravi de vous rencontrer.
Quoi apprendre cette fois ・ Gérez les données de séries chronologiques avec des pandas ・ Comment rendre les données de séries chronologiques stationnaires
-Bien que le but ultime soit d'analyser les données chronologiques avec SARIMA, il est nécessaire d'effectuer un prétraitement sur les données transmises à ce moment. -Si les données de séries chronologiques sont données sous forme de fichier CSV, la lecture Utilisez __pd.read_csv ("chemin du fichier") __.
-Lors de l'analyse des données de séries chronologiques, convertissez les informations de temps (heure, mois, etc.) en un index pour faciliter leur manipulation. -La procédure de conversion est la suivante. (1) Définissez les informations d'index avec __pd.date_range ("start", "end", freq = "interval") __. (2) Remplacez les informations définies par l'index des données d'origine. ③ Supprimez les informations temporelles des données d'origine.
-Vous pouvez vérifier le début et la fin des données originales saisies en (1) et l'intervalle avec __df.head () __ et __df.tail () __. -Comme pour l'intervalle, si les données sont composées en secondes, passez "S", pour les minutes "min", pour les heures "H", pour les jours "D", et pour les mois "M".
・ Code![Capture d'écran 2020-10-29 14.00.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/8846bc71-71c3-998c- 537b-cd65c3c57872.png)
・ Résultat![Capture d'écran 2020-10-29 14.00.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/efb179c4-e69c-3c49- 6315-bde299bfbfc4.png)
-Les causes lorsque les données de la série chronologique n'ont pas de constance sont __ "tendance" __ et "__ variation saisonnière" __. ・ Lorsqu'il y a stabilité, la valeur attendue doit être constante, mais s'il y a une tendance __ positive, cela signifie que la valeur attendue est sur une tendance à la hausse __, donc on ne peut pas dire qu'il y a stabilité. ・ De même, le coefficient d'autocorrélation doit être constant en cas de stabilité, mais le coefficient d'autocorrélation est constant pour les données avec fluctuations saisonnières, c'est-à-dire les données dans lesquelles la valeur augmente ou diminue soudainement uniquement pour une période de l'année. On ne peut pas dire cela.
-Dans un tel cas, il est possible d'obtenir des données constantes en effectuant __trend et conversion __ qui supprime les fluctuations saisonnières. ・ Après avoir créé un modèle avec ces données stables, la tendance et les fluctuations saisonnières sont à nouveau combinées pour créer un modèle de la série originale.
・ Les quatre méthodes suivantes peuvent être utilisées pour éliminer les tendances et les fluctuations saisonnières et maintenir la stabilité. Les détails seront décrits plus tard. ・ Distribution uniforme des fluctuations avec conversion __log __ ・ Prenez __moyenne mobile __ pour estimer la tendance et la supprimer ・ Conversion en série __staff __ (général) ・ Effectuer __ ajustement saisonnier __
-Comme vu dans "Time Series Analysis 1", le changement de la valeur des données peut être modéré en effectuant la conversion __log __. -En utilisant cela, il est possible de rendre l'auto-covariance uniforme pour les données avec des changements soudains de valeurs tels que les fluctuations saisonnières. Autrement dit, __ les fluctuations saisonnières peuvent être supprimées __. -Cependant, __trend ne peut pas être supprimé par cette méthode __, il est donc nécessaire d'effectuer un traitement pour supprimer la tendance en plus de la conversion logarithmique. -La conversion logarithmique peut être effectuée avec __np.log (données) __.
・ Code![Capture d'écran 2020-10-29 14.03.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/f3df871c-656e-8524- 0451-329add719538.png)
・ Résultat![Capture d'écran 2020-10-29 14.03.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/447705c8-b9fd-4df5- 94c1-c04840f6dc45.png)
-__ Moyenne de mouvement __ signifie prendre la moyenne d'une certaine section tout en déplaçant la section. -La moyenne mobile permet de lisser les données tout en conservant les caractéristiques des données d'origine. Cela permet de supprimer __les fluctuations saisonnières et d'extraire les tendances __. -À titre d'exemple, lorsque les données mensuelles ont des fluctuations saisonnières, les fluctuations saisonnières peuvent être supprimées en prenant 12 moyennes mobiles. En outre, les tendances extraites peuvent également être supprimées par "(série originale) - (moyenne mobile)".
・ La moyenne mobile peut être calculée comme suit. __Data .rolling (window = nombre de moyennes mobiles) .mean () __
-Code (données de concentration de CO2, prenez une moyenne mobile toutes les 51 semaines (1 an))![Screenshot 2020-10-29 14.08.16.png](https: //qiita-image-store.s3.ap) -northeast-1.amazonaws.com/0/698700/3acdfc2c-6d10-a226-0f5c-740246fdfd67.png)
・ Résultat![Capture d'écran 2020-10-29 14.08.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/b1662775-9436-06d6- 173b-78733ceaf6c2.png)
-Comme vu dans "Analyse des séries chronologiques 1", la gestion des données en prenant la différence de la valeur précédente est appelée scale difference series. ・ Les tendances et les fluctuations saisonnières peuvent être éliminées en utilisant une série de différences. C'est facile à faire, c'est donc le moyen le plus courant d'être constant. -Pour trouver la série de différences, vous pouvez la trouver avec __data.diff () __. ・ Celle pour laquelle la série de différences de premier ordre est obtenue est appelée série de différences primaire, et celle pour laquelle la série de différences pour la série de différences primaire est obtenue est appelée série de différences secondaires.
・ Code![Capture d'écran 2020-10-29 14.09.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/bc547a8a-ee6f-aaf6- 01e1-53a367ecadf3.png)
・ Résultat![Capture d'écran 2020-10-29 14.09.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/9f8ed0bc-d3a3-543f- b80f-8b0a7a17d56f.png)
-Comme vu dans "Time Series Analysis 1", en faisant la série désaisonnalisée, les tendances et les fluctuations saisonnières peuvent être supprimées de la série originale. -En tant que mécanisme de suppression, la série originale peut être décomposée en "série originale = tendance + variation saisonnière + résiduelle", mais si elle est convertie en "résidu = série originale- (tendance + variation saisonnière)" Le résidu correspond à la série originale moins les tendances et les fluctuations saisonnières. J'utilise ceci. -Pour créer une série désaisonnalisée, exécutez __sm.tsa.seasonal_decompose (data, freq = spécification de l'intervalle) __.
・ Code![Capture d'écran 2020-10-29 14.19.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/d35cd55e-e896-dd35- fe13-c71155db3fd6.png)
・ Résultat![Capture d'écran 2020-10-29 14.19.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/dc2f14cd-6f70-f0d2- 4092-60ba30444634.png)
-Avant d'effectuer une analyse de séries chronologiques, indexez les informations temporelles des données de séries chronologiques. -Étant donné que les données à transmettre au modèle de série chronologique doivent être stables, il est nécessaire d'effectuer un prétraitement tel que faire une série de différence pour les données sans stabilité.
Cette fois, c'est fini. Merci d'avoir lu jusqu'à la fin.
Recommended Posts