Introduction aux séries temporelles

Quand on veut prédire ou juste analyser l’évolution d’une certaine quantité dans le temps, (Le cours de la bourse par exemple) on est très vite confronté un type de données assez particulier : Les séries temporelles. D’après Wikipédia, une série temporelle est une suite de valeurs numériques représentant l’évolution d’une quantité dans le temps. Pourquoi ce type de données est-il important ? Qu’est-ce qu’il a de spécial ?

Intérêt de séries temporelles

L’importance des séries temporelles vient de son omniprésence. En effet, dans presque tous les domaines on les retrouve. Que ce soit en finance, en marketing, en traitement du signal, en physiques, etc on peut avoir affaire à des SE.

De plus, il est intéressant de regarder les séries temporelles de prêt car elles sont sujettes à bon nombres de théories mathématiques, statistiques et, plus récemment d’intelligence artificielle. Toutes ces théories nous offrent une panoplie d’armes pour attaquer sereinement les problèmes faisant intervenir les séries temporelles.

Exemples de problèmes

Bourse

L’exemple le plus célèbre est sans doute la prédiction du cours de la bourse. On connaît la valeur d’une action en temps réel (ainsi qu’un enregistrement des  valeurs précédentes) et on veut prédire la valeur qu’aura l’action dans le futur. Si on arrivait à prédire assez sûrement l’évolution du cours des actions de la bourse (qui est très aléatoire), on pourrait se faire gros paquet de frique tout simplement 😉 .

Vente – Production – Distribution

Supposons que nous sommes une boulangerie. Nous avons un enregistrement sur un an de nos ventes journalières et nous voulons savoir combien il faut produire de baguettes pour les différentes périodes de la nouvelle année afin de minimiser les pertes. Pour cela, nous allons analyser notre enregistrement et implémenter un modèle de prédiction sur la série temporelle « Vente en fonction du temps ».

À quoi ressemble une série temporelle ?

Il existe plein d’outils Pythons qui facilitent la manipulation de séries temporelles. Regardons comment on peut en créer une.

# Import des modules utiles
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Génération de série aléatoire
# On génère une série de 100 nombres ayant pour moyenne 10 et pour écart-type 5
distrib = np.random.randn(100)*5+10

# On construit la série en fournissant distrib au constructeur Series
st = pd.Series(distrib)
print("Moyenne = {}".format(st.mean()))
print("Écart-type = {}".format(st.std()))

# Graph
plt.plot(st)
plt.xlabel("Unité de temps")
plt.ylabel("Quantité étudiée")
plt.title("Série temporelle")
plt.show()

On obtient le graphe suivant :

 

Vous l’aurez compris, on peut créer une série temporelle avec Pandas à partir de n’importe quel suite de valeurs numériques.

Caractéristiques d’une série temporelle

Lorsqu’on a affaire à une série temporelle, il est important de s’attarder sur son comportement en se posant ces questions :

  • Y-t-il une tendance (trend en anglais) ? C’est-à-dire est-ce que la série temps à croître ou à décroître. Exemple :
  • Y a-t-il une saisonnalité ? Observe-t-on une sorte de répétition d’une certaine forme ? Exemple :

  • Y a-t-il des outliers (Valeurs aberrantes) ? Y a-t-il de points très éloignés de la distribution ?

Prédiction sur les séries temporelles

Il y a plusieurs manières d’approcher le problème de prédiction de séries temporelles. En effet, on peut voir la série temporelle comme un processus stochastique, comme un signal dont on peut faire l’étude spectrale ou même faire du Machine Learning.

Dans la suite de la série on introduira différents modèles pour faire de la prédiction sur les séries temporelles.

 

Commentaires (1)
Ajouter un commentaire
  • Anin

    Cool les séries temporelles car je travaille particulièrement surce sujet. Merci pour cet article. Neamoins n’hésitez pas jeter un coup d’oeil sur un de mes articles toujours sur ce sujet
    https://labs.ivoiretalents.com/news/sarima