ARIMA signifie Autoregressive Integrated Moving Average (moyenne mobile intégrée autorégressive). C’est une technique d’analyse des séries temporelles et de forecasting des valeurs futures possibles d’une série temporelle.
La création de modèles autorégressifs et de modèles à moyenne mobile sont deux approches différentes du forecasting des données de séries temporelles. ARIMA intègre ces deux approches, d’où son nom. Le forecasting est une branche du machine learning qui utilise le comportement passé d’une série temporelle pour prédire la ou les valeurs futures de cette série temporelle. Imaginez que vous achetiez de la crème glacée pour approvisionner un petit magasin. Si vous savez que les ventes de crème glacée augmentent régulièrement à mesure que le temps se réchauffe, vous allez probablement prédire que le volume de commande de la semaine prochaine devrait être un peu plus important que celui de la commande de cette semaine. Le volume devrait dépendre de la différence entre les ventes de cette semaine et les ventes de la semaine dernière. Nous ne pouvons pas prévoir l’avenir sans un passé auquel le comparer, de sorte que les données de séries temporelles passées sont essentielles pour ARIMA et pour toutes les méthodes de forecasting et d’analyse de séries temporelles.
ARIMA est l’une des approches les plus utilisées pour le forecasting des séries temporelles. Elle s’utilise de deux manières différentes en fonction du type de données de séries temporelles avec lesquelles vous travaillez. Dans le premier cas, nous avons créé un modèle ARIMA non saisonnier qui ne nécessite pas de tenir compte de la saisonnalité dans vos données de séries temporelles. Nous prédisons l’avenir simplement en nous basant sur les tendances observées dans les données passées. Dans le second cas, nous tenons compte de la saisonnalité, c’est-à-dire des cycles réguliers qui affectent les séries temporelles. Ces cycles peuvent être quotidiens, hebdomadaires ou mensuels et ils aident à définir des schémas dans les données passées de la série temporelle afin de prévoir les valeurs futures. Comme souvent dans la science des données, la base du forecasting consiste à disposer de données de séries temporelles correctes avec lesquelles entraîner les modèles. Une série temporelle est une séquence ordonnée de mesures d’une variable à des intervalles de temps égaux. Il est important de retenir que tous les ensembles de données qui comportent un élément temporel ne sont pas des données de séries temporelles puisque celles-ci ne sont pas ordonnées par séquences d’intervalles égaux.
En 1970, les statisticiens George Box et Gwilym Jenkins ont proposé ce qui est devenu la méthode Box-Jenkins pour s’adapter à tout type de modèle de série temporelle.1 L’approche repose sur l’hypothèse selon laquelle le processus qui a généré la série temporelle peut être estimé à l’aide d’un modèle s’il est stationnaire.Cette estimation s’effectue en quatre étapes :
Identification : évaluez si la série temporelle est stationnaire et, dans le cas contraire, combien de différences sont nécessaires pour la rendre stationnaire. Générez ensuite des données différenciées à utiliser dans les tracés de diagnostic. Identifiez les paramètres d’un modèle ARMA pour les données issues de l’autocorrélation et de l’autocorrélation partielle.
Estimation : utilisez les données pour entraîner les paramètres du modèle (c’est-à-dire les coefficients).
Vérification diagnostique : évaluez le modèle ajusté dans le contexte des données disponibles et vérifier les domaines dans lesquels le modèle peut être amélioré. Il s’agit notamment de vérifier s’il existe un surajustement et de calculer les erreurs résiduelles.
Forecasting : maintenant que vous disposez d’un modèle, vous pouvez commencer le forecasting des valeurs avec votre modèle.
Une fois que vous avez confirmé que votre modèle correspond bien à vos données, vous pouvez commencer le forecasting ARIMA. Nous allons examiner chacune de ces étapes en détail.
Une série temporelle peut être stationnaire ou pas. Une série temporelle stationnaire possède des propriétés statistiques qui sont constantes au fil du temps. Cela signifie que les statistiques comme la moyenne, la variance et l’autocorrélation ne changent pas en fonction des données. La plupart des méthodes de forecasting statistique, y compris ARIMA, reposent sur l’hypothèse selon laquelle la série temporelle peut être rendue approximativement stationnaire par une ou plusieurs transformations. Une série stationnaire est relativement facile à prédire, car vous pouvez simplement prédire que les propriétés statistiques seront à peu près les mêmes dans le futur que par le passé. Il est possible de travailler avec des données non stationnaires, mais une approche comme ARIMA rend le processus plus difficile.
Une autre caractéristique essentielle des données de séries temporelles est la présence ou pas d’une tendance dans les données. Par exemple, les prix des produits de première nécessité dans une épicerie au cours des 50 dernières années devraient afficher une tendance, car l’inflation fait grimper les prix. Il peut être difficile de prédire des données contenant des tendances, car celles-ci masquent les autres schémas présents dans les données. Si les données montrent une ligne de tendance stable vers laquelle elles reviennent systématiquement, elles peuvent être stationnaires en termes de tendance, auquel cas la tendance peut être supprimée en ajustant simplement une ligne de tendance et en soustrayant la tendance des données avant d’ajuster un modèle. Si les données ne sont pas stationnaires en termes de tendance, elles peuvent alors être stationnaires en termes de différences, auquel cas la tendance peut être supprimée par différenciation. La manière la plus simple d’effectuer la différenciation est de soustraire la valeur précédente de chaque valeur pour obtenir une mesure de l’ampleur du changement présent dans les données de la série temporelle. Par exemple, si Yt est la valeur de la série temporelle Y à la période t, la première différence de Y par rapport à la période t est égale à Yt-Yt-1.
Ici, nous pouvons voir une représentation de séries temporelles non stationnaires. Elles présentent une tendance évidente à la hausse et un caractère saisonnier.
Ici, la saisonnalité correspond à un cycle normal de 12 mois. Cela pourrait être résolu en différenciant les séries temporelles de 12 unités, de manière à établir la différence entre avril 1990 et avril 1989. Après avoir appliqué une différenciation avec un décalage de 12 unités aux séries temporelles, nous pouvons obtenir une série temporelle plus stationnaire. La variance de cette série temporelle change encore, mais un modèle ARIMA pourrait convenir dans ce cas et permettre d’effectuer des prévisions.
La stationnarité peut être déroutante, par exemple, une série temporelle qui a un comportement cyclique, mais aucune tendance ou saisonnalité encore stationnaire. Tant que les cycles n’ont pas une longueur fixe lorsque nous observons les séries, nous ne pouvons pas savoir où se produiront les pics et les creux. En général, une série temporelle stationnaire ne présentera pas de schémas prévisibles à long terme. Si vous deviez représenter les données de séries temporelles dans un graphique linéaire, celui-ci serait à peu près horizontal avec une variance constante et sans pics ni chutes significatifs.
Nous pouvons voir dans quelle mesure une série temporelle est corrélée à ses valeurs passées en calculant l’autocorrélation. Ce calcul permet de répondre à la question sur le caractère aléatoire des données et sur la relation entre une observation et une observation immédiatement adjacente. Cela nous donne une idée du type de modèle qui pourrait le mieux représenter les données. Les autocorrélations sont souvent tracées pour voir la corrélation entre les points, jusqu’à et y compris l’unité de décalage.
Chaque décalage dans l’autocorrélation est défini comme suit :
r est un décalage dans l’autocorrélation, T est la longueur de la série temporelle et y est la valeur de la série temporelle. Les coefficients d’autocorrélation constituent la fonction d’autocorrélation (ACF).
Dans l’ACF, le coefficient de corrélation est indiqué sur l’axe des x tandis que le nombre de décalages (appelé ordre de décalage) est indiqué sur l’axe des y. Un tracé d’autocorrélation peut être généré en Python à l’aide de la fonction plot_acf de la bibliothèque statsmodels et peut être créé dans R à l’aide de la fonction acf.
Dans ce tracé ACF d’une série temporelle différenciée avec un décalage de 12 unités de temps, le décalage nul est parfaitement corrélé à lui-même. Le premier décalage est négatif, le deuxième est légèrement positif, le troisième est négatif, et ainsi de suite. Vous remarquerez que le 12e décalage est fortement corrélé à lui-même. Comme il s’agit de données mensuelles, c‘est logique. Nous pouvons voir que l’autocorrélation maintient à peu près le même cycle tout au long de la série temporelle, ce qui indique que notre série temporelle contient toujours une saisonnalité significative. Les tracés ACF sont également utiles pour aider à déduire les paramètres du modèle ARIMA qui s’adapteront le mieux à ces données.
Un autre tracé important pour préparer l’utilisation d’un modèle ARIMA sur des données de séries temporelle est la fonction d’autocorrélation partielle. Un tracé ACF montre la relation entre yt et yt–k pour différentes valeurs de k. Si yt et yt–1 sont corrélés, alors yt–1 et yt–2 seront également corrélés. Mais il est également possible que yt et yt–2 soient corrélés parce qu’ils sont tous deux connectés à yt–1, plutôt qu’en raison d’une nouvelle information contenue dans yt–2 qui pourrait être utilisée pour la prévision yt. Pour surmonter ce problème, nous pouvons utiliser des autocorrélations partielles pour supprimer un certain nombre d’observations de décalage. Ces mesures évaluent la relation entre yt et yt–k après avoir supprimé les effets des décalages 1 à k. La première autocorrélation partielle est donc identique à la première autocorrélation, car il n’y a rien à supprimer entre elles. Chaque autocorrélation partielle peut être estimée comme le dernier coefficient d’un modèle autorégressif.
Que vous travailliez avec R, Python ou un autre langage de programmation ou une autre bibliothèque, vous aurez un moyen de calculer la PACF et de créer un tracé PACF pour faciliter l’inspection. Un tracé d’autocorrélation peut être créé en Python avec la fonction plot_pacf à partir de la bibliothèque Statsmodels, et en R avec la fonction pacf.
Ce tracé PACF utilise les mêmes données que le tracé ACF ci-dessus. Le tracé PACF commence à 1 au lieu de 0 comme dans le tracé ACF et montre de fortes corrélations jusqu’au décalage 1.0, qui correspond au même mois de l’année précédente. Après cette première année, nous observons une diminution de l’autocorrélation à mesure que le nombre de décalages augmente. Étant donné que nous examinons des données mensuelles avec une variance qui change d’une année à l’autre, cela a du sens.
Comme son nom l’indique, l’acronyme ARIMA intègre les modèles d’autorégression et de moyenne mobile en un seul modèle en fonction des paramètres passés. Ces deux manières de modéliser le changement tout au long de la série temporelle sont liées mais présentent quelques différences essentielles. Dans un modèle d’autorégression, nous prévoyons la variable d’intérêt en utilisant une combinaison linéaire des valeurs passées de la variable. Le terme autorégression indique qu’il s’agit d’une régression de la variable par rapport à elle-même. Cette technique est semblable à un modèle de régression linéaire dans la façon dont elle utilise les valeurs passées comme entrées de la régression. L’autorégression est définie comme suit :
où εt est un bruit blanc. Cela ressemble à une regression multiple, mais avec des valeurs décalées de yt en tant que prédicteurs. Nous appelons cela un modèle AR(p), soit un modèle autorégressif d’ordre p.
Un modèle de moyenne mobile, en revanche, utilise les erreurs de prévision passées plutôt que les valeurs passées de la variable de prévision dans une régression. Une moyenne mobile effectue simplement la moyenne des valeurs k dans une fenêtre, où k est la taille de la fenêtre de moyenne mobile, puis avance la fenêtre. Les valeurs de prévision sont évaluées à l’aide des valeurs réelles pour déterminer l’erreur à chaque étape de la série temporelle. Une moyenne mobile est définie comme suit :
εt est un bruit blanc. Nous appelons cela un modèle MA(q), soit un modèle de moyenne mobile d’ordre q. Bien sûr, nous n’observons pas les valeurs εt, il ne s’agit donc pas vraiment d’une régression au sens habituel. Notez que chaque valeur yt peut être considérée comme une moyenne mobile pondérée des dernières erreurs de prévision.
En règle générale, dans un modèle ARIMA, vous utiliserez soit le terme « autorégressif » (AR ou Auto-Regressive), soit le terme « moyenne mobile » (MA ou Moving Average). Le tracé ACF et le tracé PACF sont souvent utilisés pour déterminer lequel de ces termes est le plus approprié.
Une fois la série temporelle rendue stationnaire et la nature des autocorrélations déterminée, il est possible d’ajuster un modèle ARIMA. Un modèle ARIMA comporte trois paramètres principaux, généralement appelés p, d et q.
p : ordre de la partie autorégressive d’ARIMA
d : degré de différenciation impliqué
q : ordre de la partie moyenne mobile
Ces paramètres sont généralement écrits dans l’ordre suivant : ARIMA(p, d, q). De nombreux langages de programmation et packages offrent une fonction ARIMA qui peut être appelée avec la série temporelle à analyser et ces trois paramètres. Le plus souvent, les données sont divisées en un ensemble d’entraînement et un ensemble de tests afin que la précision du modèle puisse être testée après son entraînement. Il n’est généralement pas possible de déterminer simplement en regardant un tracé temporel quelles valeurs de p et q seront les plus appropriées pour les données. Cependant, il est souvent possible d’utiliser les tracés ACF et PACF pour déterminer les valeurs appropriées pour p et q ; ces tracés sont donc des éléments importants pour travailler avec ARIMA
Voici quelques indications pour savoir quand utiliser les termes AR dans le modèle :
Voici quelques indications pour savoir quand utiliser les termes MA dans le modèle :
Vous pouvez rencontrer plusieurs types de modèles ARIMA classiques.
ARIMA(1,0,0) = modèle autorégressif du premier ordre : si la série est stationnaire et autocorrélée, il est peut-être possible de la prédire comme un multiple de sa propre valeur précédente, plus une constante. Si les ventes de glace de demain peuvent être directement prédites uniquement à partir des ventes de glace d’aujourd’hui, il s’agit d’un modèle autorégressif de premier ordre.
ARIMA(0,1,0) = marche aléatoire : si la série temporelle n’est pas stationnaire, le modèle le plus simple possible est un modèle de marche aléatoire. Une marche aléatoire est différente d’une liste de nombres aléatoires car la valeur suivante de la séquence est une modification de sa valeur précédente dans la séquence. C’est souvent de cette manière que l’on modélise les valeurs différentielles des cours boursiers.
ARIMA (1,1,0) = modèle autorégressif différencié du premier ordre : si les erreurs d’un modèle de marche aléatoire sont autocorrélées, il est peut-être possible de résoudre le problème en ajoutant un décalage de la variable dépendante à l’équation de prédiction, c’est-à-dire en faisant régresser la première différence de Y elle-même avec un décalage d’une période.
ARIMA(0,1,1) sans constante = modèles de lissage exponentiel simple : ce modèle est utilisé pour les données de séries temporelles sans saisonnalité ni tendance. Il nécessite un seul paramètre de lissage qui contrôle le taux d’influence des observations historiques (indiqué par une valeur de coefficient comprise entre 0 et 1). Dans cette technique, les valeurs proches de 1 signifient que le modèle accorde peu d’attention aux observations passées, tandis que les valeurs inférieures stipulent qu’une plus grande partie de l’historique est prise en compte lors des prédictions.
ARIMA(0,1,1) avec constante = modèles de lissage exponentiel simple avec croissance. Cela revient au lissage exponentiel simple, sauf qu’il existe un terme constant additif qui fait augmenter la valeur Y de la série temporelle à mesure qu’elle progresse.
Il existe bien sûr de nombreuses autres façons d’ajuster les modèles ARIMA. C’est pourquoi nous calculons souvent plusieurs modèles et les comparons pour déterminer celui qui correspond le mieux à nos données. Il s’agit de modèles du premier ordre, ce qui signifie qu’ils mappent des processus linéaires. Il existe des modèles du second ordre qui mappent les processus quadratiques, et les modèles supérieurs qui mappent des processus plus complexes.
En règle générale, plusieurs modèles ARIMA sont ajustés aux données et comparés les uns aux autres pour trouver celui qui permet de prédire les modèles observés dans les données des séries temporelles. La précision d’un modèle ARIMA s’évalue à l’aide de trois indicateurs principaux :
Critère d’information d’Akaike ou AIC. Cette méthode est largement utilisée pour sélectionner les prédicteurs dans les modèles de régression ; elle est également utile pour déterminer l’ordre d’un modèle ARIMA. L’AIC quantifie à la fois la qualité de l’ajustement du modèle et la simplicité/parcimonie du modèle en une seule statistique. Un score AIC inférieur est meilleur qu’un score supérieur ; nous préférerons donc le modèle qui a un score inférieur. L’AIC favorise les modèles plus simples. Les modèles plus complexes reçoivent des scores plus élevés tant que leur précision est à peu près la même que celle d’un modèle plus simple. Il existe également l’AIC corrigé ou AICC, auquel on applique simplement une petite correction en fonction de la taille de l’échantillon.
Critère d’information bayésien ou BIC. Il s’agit d’un autre critère de sélection de modèle qui pénalise la complexité encore plus que l’AIC. Comme pour l’AIC, les modèles ayant un BIC plus faible sont généralement préférés à ceux ayant des scores plus élevés. Si votre modèle est utilisé pour un forecasting à long terme, le BIC peut être préférable, tandis que pour un forecasting à court terme, l’AIC est préférable.
La valeur sigma au carré ou sigma2 est la variance des valeurs résiduelles du modèle. Le terme sigma décrit la volatilité du processus hypothétique. Si vos données sont très volatiles mais que vous avez un score sigma au carré très faible, ou au contraire des données non volatiles mais un score sigma au carré élevé, c’est le signe que le modèle ne capture pas correctement le processus de génération de données réel.
Si nous avons conservé un ensemble de données de test, nous pouvons également comparer les indicateurs de précision tels que la RMSE pour différents intervalles de prévision. Le modèle ARIMA peut prédire des valeurs pour un seul intervalle temporel dans le futur ou pour plusieurs étapes à la fois.
Une autre approche pour configurer et comparer les modèles ARIMA consiste à utiliser la fonction Auto-ARIMA, qui applique des tâches de configuration automatisées à la génération et à la comparaison des modèles ARIMA. Il existe plusieurs façons de parvenir à un modèle optimal. L’algorithme va générer plusieurs modèles et tentera de minimiser l’AICC et l’erreur d’estimation du maximum de vraisemblance pour obtenir un modèle ARIMA.
Un modèle Seasonal Autoregressive Integrated Moving Average, SARIMA ou Seasonal ARIMA, est une extension d’ARIMA qui prend en charge les données des séries temporelles avec un composant saisonnier. Pour ce faire, il ajoute trois nouveaux hyperparamètres pour spécifier l’autorégression, la différenciation et la moyenne mobile pour la composante saisonnière de la série, ainsi qu’un paramètre supplémentaire pour la période de la saisonnalité. Un modèle SARIMA est généralement exprimé comme SARIMA((p,d,q),(P,D,Q)), où les lettres minuscules indiquent la composante non saisonnière de la série temporelle et les lettres majuscules la composante saisonnière
Les modèles autorégressifs vectoriels (ou modèles VAR) sont utilisés pour les séries temporelles multivariées. Ils sont structurés de manière à ce que chaque variable soit une fonction linéaire de ses propres décalages passés et des décalages passés des autres variables.
Les modèles ARIMA constituent un outil puissant pour analyser les données des séries temporelles, comprendre les processus passés et prévoir les valeurs futures d’une série temporelle. Les modèles ARIMA combinent les modèles autorégressifs et les modèles de moyenne mobile pour fournir à un prévisionniste un outil hautement paramétrable qui peut être utilisé avec une grande variété de données de séries temporelles.
Obtenez des informations uniques sur l’évolution des solutions ABI, mettant en évidence les principales conclusions, hypothèses et recommandations pour les responsables des données et de l’analytique.
Simplifiez l’accès aux données et automatisez la gouvernance des données. Découvrez la puissance de l’intégration d’une stratégie de data lakehouse dans votre architecture de données, notamment l’optimisation des coûts de vos workloads et le dimensionnement de l’IA et des analyses, avec toutes vos données, partout.
Explorez le guide pour les responsables des données sur le développement d’une organisation axée sur les données et d’un avantage métier.
Découvrez comment une approche de type data lakehouse ouvert peut fournir des données fiables et accélérer l’exécution des analyses et des projets d’IA.
Pour prospérer, les entreprises doivent exploiter les données pour fidéliser leur clientèle, automatiser les processus métier et innover avec des solutions pilotées par l’IA.
Avec IBM Consulting, exploitez les données de votre entreprise et développez une organisation basée sur les informations pour tirer des avantages métier.
Découvrez Cognos Analytics 12.0, des informations alimentées par l’IA pour une prise de décision plus éclairée.
1 Time Series Analysis: Forecasting and Control, Holden Day, 1970.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com