Prédiction de séries chronologiques en utilisant ARIMA vs LSTM

64

Le problème que je traite est de prédire les valeurs de séries chronologiques. Je regarde une série chronologique à la fois et, sur la base par exemple de 15% des données d'entrée, je voudrais prédire ses valeurs futures. Jusqu'à présent, j'ai rencontré deux modèles:

  • LSTM (mémoire à long terme et à court terme; classe de réseaux de neurones récurrents)
  • ARIMA

J'ai essayé les deux et lu quelques articles sur eux. Maintenant, j'essaie de mieux comprendre comment comparer les deux. Ce que j'ai trouvé jusqu'à présent:

  1. LSTM fonctionne mieux si nous traitons une quantité énorme de données et si suffisamment de données de formation sont disponibles, alors qu'ARIMA est préférable pour des ensembles de données plus petits (est-ce correct?)
  2. ARIMA nécessite une série de paramètres (p,q,d)qui doivent être calculés en fonction des données, tandis que LSTM ne nécessite pas de définition de tels paramètres. Cependant, il existe certains hyperparamètres que nous devons régler pour LSTM.
  3. EDIT: Une différence majeure entre les deux que j'ai remarqué en lisant un article ici , est que ARIMA ne pouvait fonctionner correctement sur les séries temporelles stationnaires (où il n'y a pas de saison, tendance et etc.) et vous devez prendre soin de si vouloir utiliser ARIMA

À part les propriétés susmentionnées, je ne pouvais trouver aucun autre point ou fait susceptible de m'aider à choisir le meilleur modèle. Je serais vraiment reconnaissant si quelqu'un pouvait m'aider à trouver des articles, des articles ou d'autres articles (je n'ai pas eu de chance jusqu'ici, seulement quelques opinions générales ici et là et rien n'est basé sur des expériences.)

Je dois mentionner que, à l'origine, je traite de la transmission en continu de données, mais pour l'instant, j'utilise des jeux de données NAB, qui incluent 50 jeux de données avec une taille maximale de 20 000 points de données.

ahajib
la source
Souhaitez-vous s'il vous plaît partager le code de LSTM? ET MERCI.
HELP

Réponses:

25

La déclaration 1 est correcte, la déclaration 2 est correcte, mais nécessite une élaboration, et la déclaration 3 est incorrecte pour ARIMA saisonnier:

Ce qui suit pourrait vous orienter dans la bonne direction, mais nous espérons que vous obtiendrez quelques réponses supplémentaires avec plus de profondeur dans le domaine du LSTM.

Vous dites que vous avez essayé les deux algorithmes et que vous essayez simplement de déterminer lequel est le meilleur, ce qui me laisse penser que vous avez peut-être plus de problèmes avec le processus de science des données et de validation croisée qu'avec les détails des modèles.

Séries temporelles en général:

Les séries chronologiques, en général, sont difficiles à prévoir. S'ils étaient faciles à prévoir, tous les scientifiques de données seraient riches, puisqu'ils avaient prévu avec précision la valeur de tous les stocks. La réalité est que les fonds de couverture, en moyenne, ne surperforment pas le marché et que les prévisions de séries chronologiques sont généralement très médiocres et ne s’appliquent que pour de très courtes durées. Les principaux problèmes sont qu'il y a beaucoup de bruit, qu'il y a beaucoup d'influences cachées, que les modèles sont trop simplistes, que les influenceurs ne se comportent pas comme nous le devrions, l'interaction entre linéarité et non-linéarité est subtile et déroutante, ... à l'infini.

ARIMA

Vous estimez à tort qu'ARIMA a besoin de séries chronologiques stationnaires pour pouvoir effectuer des prévisions. ARIMA non saisonnier a trois valeurs d'entrée pour aider à contrôler le lissage, la stationnarité et la prévision ARIMA (p, d, q), où:

  • p est le nombre de termes autorégressifs,
  • d est le nombre de différences non saisonnières nécessaires pour la stationnarité, et
  • q est le nombre d'erreurs de prévision retardées dans l'équation de prédiction.

En revanche, ARIMA saisonnier a six valeurs d'entrée ARIMA (p, d, q, P, D, Q), où:

  • P est le nombre de termes autorégressifs saisonniers,
  • D est le nombre de différences saisonnières, et
  • Q est le nombre de termes à moyenne mobile saisonnière.

Sous réserve des remarques de qualification ci-dessus, je suggère de jouer avec ARIMA, un produit saisonnier, pour avoir une idée de la complexité inhérente au lissage, à l'assaisonnement, au détournement, à la réduction du bruit et aux prévisions.

LSTM

Je ne connais pas assez le LSTM pour en ajouter beaucoup ici. J'ajouterai que les drapeaux rouges ont tendance à être levés lorsque quelqu'un commence l'exercice de science des données avec un apprentissage en profondeur. Je suggère d’apprendre le plus possible en utilisant ARIMA, puis d’appliquer une partie de votre expertise d’ARIMA pour vous aider à apprendre le LSTM. Les réseaux de neurones peuvent être un outil très puissant, mais ils:

  • peut prendre beaucoup de temps à courir,
  • nécessite souvent plus de données à former que les autres modèles, et
  • avoir beaucoup de paramètres d'entrée à régler.

Modèles de validation croisée et de comparaison:

Les séries chronologiques sont amusantes dans la mesure où toutes les données de formation peuvent généralement être transformées en ensembles de formation à apprentissage supervisé. Une fois, vous pouvez simplement prendre une série chronologique et revenir en arrière. C’est-à-dire… choisissez un moment et prétendez que vous n’avez pas de données supplémentaires, puis établissez une prévision et voyez comment vous l’avez fait. Vous pouvez parcourir la série chronologique en procédant fois afin d’obtenir une évaluation des performances de votre modèlen et de comparer des modèles tout en prenant les précautions nécessaires pour éviter les sur-ajustements .

J'espère que ça t'aide et bonne chance!

AN6U5
la source
Merci pour votre réponse. Vos notes sur ARIMA sont utiles et j'essaie de les garder à l'esprit. En cas de validation croisée et de comparaison des deux modèles, pour les jeux de données actuels, en utilisant divers paramètres, je peux dire quel algorithme fonctionne mieux, etc. Le problème est qu’aucun de ces ensembles de données pourrait représenter les données réelles (transmission de données en continu) et c’est pourquoi j’ai pensé qu’il serait préférable de demander à d’autres spécialistes du domaine de la science des données et de l’apprentissage automatique de partager leurs réflexions et leurs expériences.
ahajib
Mais si vous avez des données en streaming, vous pouvez les transformer en données de test en enregistrant le flux. La bonne partie de la série chronologique est que vous pouvez toujours créer un jeu de données de test à partir de tout jeu de données. Vous avez juste besoin de sauvegarder une partie des données puis de revenir en arrière.
AN6U5
Je sais que c'est un peu vieux, mais je dois être en désaccord ici. Les paramètres d, D servent à différencier, comme le dit @ AN6U5, mais la raison de ces différences est d’abord de renforcer la stationnarité du problème. En fait, une interprétation du modèle ARIMA est qu’il s’agit simplement d’une régression linéaire avec des termes pour imposer la stationnarité sur la série chronologique.
Ryan
6

Ajout à @ AN6U5 répondre.

D'un point de vue purement théorique, cet article a montré que les RNN sont des approximateurs universels. Je n'ai pas lu le journal en détail, donc je ne sais pas si la preuve peut également être appliquée à LSTM, mais je suppose que oui. Le plus gros problème avec RNN en général (y compris LSTM) est qu’ils sont difficiles à entraîner en raison de l’exploration et de la disparition des gradients. La limite pratique pour le LSTM semble se situer autour de 200 ~ pas avec une descente de gradient standard et une initialisation aléatoire. Et comme mentionné, en général, pour que tout modèle d’apprentissage en profondeur fonctionne correctement, vous avez besoin de beaucoup de données et de nombreux réglages.

Le modèle ARIMA est plus restreint. Si votre système sous-jacent est trop complexe, il est tout simplement impossible d'obtenir un bon ajustement. Mais d'un autre côté, si votre modèle sous-jacent est suffisamment simple, il est beaucoup plus efficace que l'approche d'apprentissage en profondeur.

Louis T
la source
2

Les modèles ARIMA sont linéaires et les modèles LSTM non linéaires. Les statisticiens ont étudié d’autres modèles de séries chronologiques non linéaires paramétriques, à savoir les modèles autorégressifs à seuil (TAR) et les modèles autorégressifs à transition fluide (STAR). Le package R tsDyn implémente ces modèles.

Je me demande comment les modèles STAR se comportent par rapport à LSTM.

Fortranner
la source
2

Je suis arrivé à la même conclusion que vous et d’autres, la prévision traditionnelle reste probablement la plus applicable et peut-être la plus fiable pour les séries chronologiques de valeurs numériques. Il existe quelques légères anomalies dans l’apprentissage en profondeur lors de discussions où les séries chronologiques de valeurs numériques sont mélangées à un apprentissage en profondeur, où l’apprentissage en profondeur s’applique (actuellement) aux défis actuels de la reconnaissance des formes pour la détection d’images, de sons clairs ou d’anomalies. J'ai souvent de bons résultats avec VAR / VECM pour les données transactionnelles quotidiennes, qui pourraient probablement être appliquées à votre cas d'utilisation du traitement du signal.

Starbucks
la source
1

Dans un cas extrême, j’ai eu l’occasion d’étudier les prévisions sur le Forex (taux de change) et de comparer de façon intensive les performances de LSTM, Windowed-MLP et ARIMA. Comme le disent de nombreux articles, les séries temporelles sur le Forex sont proches de la série de marches aléatoires (elles sont complètement non stationnaires). Aucun de ces algorithmes ne peut prédire le taux au comptant du jour suivant. Par exemple, s’il n’ya pas (ou peu) de changement, la valeur actuelle sera maintenue et l’apparence sera satisfaisante. Cependant, s'il y a un changement soudain (substantiel) dans le cours au comptant de demain, il ne peut toujours pas prédire. Le problème est qu’il n’ya rien à apprendre des données de formation (par exemple, l’évolution des taux de change au comptant des 10 dernières années), qu’elles soient suffisamment volumineuses ou non, parce qu’elles sont complètement aléatoires (peut-être en raison des sentiments des courtiers en valeurs mobilières…) .

En fait, LSTM avec seulement un décalage de 1 ou ARIMA avec (1,0,0) donnera les meilleurs résultats, car le stockage de données avec plus d'un décalage n'aide pas du tout. Pour ce type de série chronologique, je dirais, en termes de suivi de la performance, 1) ARIMA, 2) LSTM, 3) MLP. Dernier commentaire ... MLP avec des paramètres macro / micro économiques (par exemple, différence de PIB, taux obligataires, prix du pétrole brut, indice du dollar, etc.) car les fonctionnalités additionnelles ne fonctionnaient pas du tout.

East Chun
la source