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:
- 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?)
- 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. - 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.
Réponses:
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ù:
En revanche, ARIMA saisonnier a six valeurs d'entrée ARIMA (p, d, q, P, D, Q), où:
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:
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!
la source
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.
la source
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.
la source
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.
la source
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.
la source