Recherche de site Web

Une introduction douce à l’autocorrélation et à l’autocorrélation partielle


Les tracés d'autocorrélation et d'autocorrélation partielle sont largement utilisés dans l'analyse et la prévision de séries chronologiques.

Il s'agit de graphiques qui résument graphiquement la force d'une relation avec une observation dans une série chronologique avec des observations à des pas de temps antérieurs. La différence entre l’autocorrélation et l’autocorrélation partielle peut être difficile et déroutante pour les débutants en prévision de séries chronologiques.

Dans ce didacticiel, vous découvrirez comment calculer et tracer des tracés d'autocorrélation et de corrélation partielle avec Python.

Après avoir terminé ce tutoriel, vous saurez :

  • Comment tracer et examiner la fonction d'autocorrélation pour une série chronologique.
  • Comment tracer et examiner la fonction d'autocorrélation partielle pour une série chronologique.
  • La différence entre les fonctions d'autocorrélation et d'autocorrélation partielle pour l'analyse de séries chronologiques.

Démarrez votre projet avec mon nouveau livre Time Series Forecasting With Python, comprenant des tutoriels étape par étape et les fichiers code source Python pour tous les exemples.

Commençons.

  • Mise à jour en avril 2019 : mise à jour du lien vers l'ensemble de données.

Ensemble de données sur les températures quotidiennes minimales

Cet ensemble de données décrit les températures quotidiennes minimales sur 10 ans (1981-1990) dans la ville de Melbourne, en Australie.

Les unités sont en degrés Celsius et il y a 3 650 observations. La source des données est attribuée au Bureau australien de météorologie.

  • Téléchargez l'ensemble de données.

Téléchargez l'ensemble de données et placez-le dans votre répertoire de travail actuel avec le nom de fichier « daily-minimum-temperatures.csv' ».

L'exemple ci-dessous chargera les températures minimales quotidiennes et représentera graphiquement la série chronologique.

from pandas import read_csv
from matplotlib import pyplot
series = read_csv('daily-minimum-temperatures.csv', header=0, index_col=0)
series.plot()
pyplot.show()

L'exécution de l'exemple charge l'ensemble de données en tant que série Pandas et crée un tracé linéaire de la série chronologique.

Corrélation et autocorrélation

La corrélation statistique résume la force de la relation entre deux variables.

Nous pouvons supposer que la distribution de chaque variable correspond à une distribution gaussienne (courbe en cloche). Si tel est le cas, nous pouvons utiliser le coefficient de corrélation de Pearson pour résumer la corrélation entre les variables.

Le coefficient de corrélation de Pearson est un nombre compris entre -1 et 1 qui décrit respectivement une corrélation négative ou positive. Une valeur de zéro indique aucune corrélation.

Nous pouvons calculer la corrélation entre les observations de séries chronologiques et les observations comportant des pas de temps précédents, appelés décalages. Étant donné que la corrélation des observations de séries chronologiques est calculée avec les valeurs de la même série à des instants précédents, on parle alors de corrélation sérielle ou d'autocorrélation.

Un tracé de l'autocorrélation d'une série temporelle par décalage est appelé fonction AutoCorrélation F, ou acronyme ACF. Ce tracé est parfois appelé corrélogramme ou tracé d’autocorrélation.

Vous trouverez ci-dessous un exemple de calcul et de tracé du tracé d'autocorrélation pour les températures quotidiennes minimales à l'aide de la fonction plot_acf() de la bibliothèque statsmodels.

from pandas import read_csv
from matplotlib import pyplot
from statsmodels.graphics.tsaplots import plot_acf
series = read_csv('daily-minimum-temperatures.csv', header=0, index_col=0)
plot_acf(series)
pyplot.show()

L'exécution de l'exemple crée un tracé 2D montrant la valeur du décalage le long de l'axe des x et la corrélation sur l'axe des y entre -1 et 1.

Les intervalles de confiance sont dessinés sous forme de cône. Par défaut, cet intervalle de confiance est défini à 95 %, ce qui suggère que les valeurs de corrélation en dehors de ce code sont très probablement une corrélation et non un hasard statistique.

Par défaut, toutes les valeurs de décalage sont imprimées, ce qui rend le tracé bruyant.

Nous pouvons limiter le nombre de décalages sur l'axe des x à 50 pour rendre le tracé plus facile à lire.

Fonction d'autocorrélation partielle

Une autocorrélation partielle est un résumé de la relation entre une observation dans une série chronologique et des observations à des pas de temps antérieurs, les relations des observations intermédiaires étant supprimées.

L'autocorrélation partielle au décalage k est la corrélation qui résulte après suppression de l'effet de toute corrélation due aux termes à des décalages plus courts.

— Page 81, section 4.5.6 Autocorrélations partielles, séries chronologiques d'introduction avec R.

L'autocorrélation pour une observation et une observation à un pas de temps antérieur comprend à la fois la corrélation directe et les corrélations indirectes. Ces corrélations indirectes sont une fonction linéaire de la corrélation de l'observation, avec des observations à des pas de temps intermédiaires.

Ce sont ces corrélations indirectes que la fonction d’autocorrélation partielle cherche à supprimer. Sans entrer dans les mathématiques, c'est l'intuition de l'autocorrélation partielle.

L'exemple ci-dessous calcule et trace une fonction d'autocorrélation partielle pour les 50 premiers décalages de l'ensemble de données Minimum Daily Temperatures à l'aide de plot_pacf() de la bibliothèque statsmodels.

from pandas import read_csv
from matplotlib import pyplot
from statsmodels.graphics.tsaplots import plot_pacf
series = read_csv('daily-minimum-temperatures.csv', header=0, index_col=0)
plot_pacf(series, lags=50)
pyplot.show()

L'exécution de l'exemple crée un tracé 2D de l'autocorrélation partielle pour les 50 premiers décalages.

Intuition pour les tracés ACF et PACF

Les tracés de la fonction d’autocorrélation et de la fonction d’autocorrélation partielle pour une série chronologique racontent une histoire très différente.

Nous pouvons utiliser l'intuition pour ACF et PACF ci-dessus pour explorer certaines expériences de pensée.

Intuition d’autorégression

Prenons une série temporelle générée par un processus d'autorégression (AR) avec un décalage de k.

Nous savons que l'ACF décrit l'autocorrélation entre une observation et une autre observation à un pas de temps antérieur qui inclut des informations de dépendance directe et indirecte.

Cela signifie que nous nous attendrions à ce que l'ACF pour la série chronologique AR(k) soit forte jusqu'à un décalage de k et que l'inertie de cette relation se poursuivrait jusqu'aux valeurs de décalage ultérieures, s'atténuant à un moment donné à mesure que l'effet s'affaiblissait.

On sait que le PACF ne décrit que la relation directe entre une observation et son décalage. Cela suggérerait qu'il n'y aurait aucune corrélation pour les valeurs de décalage au-delà de k.

C’est exactement ce que l’on attend des tracés ACF et PACF pour un processus AR(k).

Intuition moyenne mobile

Considérons une série chronologique générée par un processus de moyenne mobile (MA) avec un décalage de k.

N'oubliez pas que le processus de moyenne mobile est un modèle d'autorégression de la série chronologique d'erreurs résiduelles provenant de prédictions antérieures. Une autre façon d’envisager le modèle de moyenne mobile est qu’il corrige les prévisions futures en fonction des erreurs commises sur les prévisions récentes.

Nous nous attendons à ce que l'ACF pour le processus MA(k) montre une forte corrélation avec les valeurs récentes jusqu'au décalage de k, puis une forte baisse jusqu'à une corrélation faible ou nulle. Par définition, c'est ainsi que le processus a été généré.

Pour le PACF, nous nous attendons à ce que le graphique montre une forte relation avec le décalage et une diminution de la corrélation à partir du décalage.

Encore une fois, c’est exactement ce que l’on attend des tracés ACF et PACF pour un processus MA(k).

Lectures complémentaires

Cette section fournit des ressources pour en savoir plus sur l'autocorrélation et l'autocorrélation partielle pour les séries chronologiques.

  • Corrélation et dépendance à Wikipédia
  • Autocorrélation sur Wikipédia
  • Corrélogramme sur Wikipédia
  • Fonction d'autocorrélation partielle sur Wikipédia.
  • Section 3.2.5 Fonction d'autocorrélation partielle, page 64, Analyse des séries chronologiques : prévision et contrôle.

Résumé

Dans ce didacticiel, vous avez découvert comment calculer des tracés d'autocorrélation et d'autocorrélation partielle pour les données de séries chronologiques avec Python.

Concrètement, vous avez appris :

  • Comment calculer et créer un tracé d'autocorrélation pour les données de séries chronologiques.
  • Comment calculer et créer un tracé d'autocorrélation partielle pour les données de séries chronologiques.
  • La différence et l'intuition pour interpréter les tracés ACF et PACF.

Avez-vous des questions sur ce tutoriel ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Articles connexes