Séries temporelles : SARIMA pour initiation aux prédictions temporelles
1. Définitions
Une série temporelle est une suite de valeurs numériques représentant l’évolution d’une grandeur physique qui dépend du temps.
Exemples: la consommation électrique, le coût d’une action, des indicateurs réseaux (Débit, trafic voix sur LTE, …).
But des prédictions temporelles : comprendre et modéliser l’évolution passée d’une grandeur mesurable suivant un historique de données puis de prédire les comportements futurs.
Un processus est dit stationnaire si ses grandeurs caractéristiques (moyenne, variance) ne varient pas au cours du temps. C’est une propriété importante que doit vérifier les séries temporelles.
Un test statistique peut valider ou réfuter la propriété de stationnarité de la série. Exemple: le test de Dickey-Fuller.
Composantes de la série temporelle : une tendance, une saisonnalité et le terme des résidus (erreurs).
Il existe plusieurs méthodes qui permettent de modéliser une série temporelle mais dans ce document nous faisons un focus sur SARIMA.
Par ailleurs, une meilleure préemption de SARIMA nécessite une bonne connaissance de ARIMA.
2. Rappel sur ARIMA
ARMA : Autegressive Moving Average ou méthode de Box-Jenkins est un processus qui permet de modéliser les séries temporelles stationnaires. Il est caractérisé par 2
paramètres:
p : ordre de la partie autorégressive (AR), l’observation courante est la combinaison linéaire de ses instants passés (1 à p). Il est déterminé par la Fonction d’Autocorrélation ( ACF).
q : ordre de la moyenne mobile(MA). ce paramètre est déterminé par la Fonction d’Autocorrélation Partielle ( PACF).
ARIMA : Autegressive Integrated Moving Average est une extension de ARMA. Il est désigné par 3 paramètres :
p : ordre de la partie autorégressive (AR),
d : ordre de la différence ou dérivation du processus. Cela permet de rendre stationnaire la série au cas où elle ne l’était pas. Ainsi, d=0 si la série est au préalable stationnaire sinon d>=1
q : ordre de la moyenne mobile(MA).
ARIMA traite les données comportant une tendance. Sa limitation est qu’elle ne prend pas en compte les séries comportant une saisonnalité.
De ce fait nous avons 2 solutions possibles pour traiter cette limitation :
- Appliquer un ajustement saisonnier sur la série temporelle afin d’éliminer la composante saisonnière.
- Utiliser le modèle SARIMA.
3. Modèle SARIMA
SARIMA: Seasonal ARIMA ou ARIMA saisonnier est une extension du modèle ARIMA. Il permet de modéliser les séries temporelles comportant une composante saisonnière et désigné par 7 paramètres :
p, d, q : les même que ceux de ARIMA.
P : ordre de la partie autorégressive saisonnière.
D : ordre de la différence saisonnière.
Q : ordre de la moyenne mobile saisonnière.
m : la période de la composante saisonnière.
Remarques :
- P=1: indique l’utilisation de l’observation décalée d’une période (t-m) ; P=2, on utilise les 2 dernières observations décalées de t-m et t-2*m
- Le paramètre m influence sur les valeurs de P, D et Q.
- En dehors de ces 7 paramètres, l’implémentation de SARIMA permet d’intégrer une variable exogène qui permet à la fois d’améliorer les performances du modèle et d’expliquer le comportement de la série étudiée.
4. traitement des séries temporelles : Approche de Box-Jenkins
Une des méthodes ou démarches suivie pour traiter les séries temporelles est l’approche de Box-Jenkins. c’est une méthode en 5 étapes en vue de ne pas escamoter des éléments importants.
- Transformation : elle consiste à analyser d’abords la série en vue de la rendre stationnaire si elle ne l’est pas (différenciation), mais aussi d’obtenir une distribution normale pour la série(transformation Box-Cox). Ici on a connaissance de la valeur de d.
- Identification des paramètres p, q : observation des courbes ACF et PACF. Les valeurs trouvées à ce niveau constituent les bornes supérieures atteignables pour la définition des plages de de valeurs d’un paramètre.
- Evaluation des paramètres : Sélectionner le ou les modèles candidats qui minimisent l’un des critères suivants : AIC, AICc et le BIC (Critère d’information Bayésien).
- Diagnostique du modèle : Vérifier la normalité et la non corrélation des termes des résidus (erreurs). Si les termes de partie des résidus du modèles suivent une loi normale et sont décorrélés alors on peut utiliser le modèle pour faire des prédictions sinon, on refait les étapes précédentes.
- Prédiction : Prédire les valeurs futures puis on évalue la performance du modèle en calculant le RMSE (erreur quadratique moyenne), MAE (Erreur moyenne absolue), MAPE(équivalent à MAE mais évaluer en pourcentage).
5. Applications possibles
- Utiliser les séries temporelles pour détecter les comportements inhabituels
- Détection d’anomalies et de valeurs aberrantes en couplant prédiction temporelle au réseaux de neurones (Deep-Learning)
- Maintenance prédictive
- Usage des véhicules autonomes
Références pour plus amples informations :
Le langage de programmation utilisé ici est python mais on peut obtenir les mêmes résultats sur R.
Bonne lecture et je suis disponible pour des critiques, remarques et suggestions !!!
Auteur : Arthus ANIN, Digitalization, Innovation and Change | Data Scientist | Finance
commentaires
Ivoire Talents Labs
Merci Arthus pour cet article passionnant et très détailé. Le sujet m’emballe et j’aurais une question relativement à « Détection d’anomalies et de valeurs aberrantes en couplant prédiction temporelle au réseaux de neurones »
ici lorsqu’on parle de neurones, s’agit-il d’une application au domaine de la santé. Si tel est le cas, quelles sont les maladies que nous pouvons diagnostiquer voire soigner via SARIMA. Par ailleurs, pourrais je avoir d’autres exemples de système/technologie online qui utilisent SARIMA stp?
Merci encore pour cet article très intéressant, le sujet (big data, machine learning, deep learning, etc) m’intéresse beaucoup
Arthus Anin
Merci Arthus pour cet article passionnant et très détailé. Le sujet m’emballe et j’aurais une question relativement à « Détection d’anomalies et de valeurs aberrantes en couplant prédiction temporelle au réseaux de neurones »
ici lorsqu’on parle de neurones, s’agit-il d’une application au domaine de la santé. Si tel est le cas, quelles sont les maladies que nous pouvons diagnostiquer voire soigner via SARIMA. Par ailleurs, pourrais je avoir d’autres exemples de système/technologie online qui utilisent SARIMA stp?
Merci encore pour cet article très intéressant, le sujet (big data, machine learning, deep learning, etc) m’intéresse beaucoup
amine
pour les valeurs aberrantes, est-ce qu’on doit les exclure avant d’utiliser la modélisation ou le modèle sarima les prend en compte déjà?