Comment calculer l’autocorrélation dans R
L’autocorrélation mesure le degré de similarité entre une série temporelle et une version décalée d’elle-même sur des intervalles de temps successifs.
On l’appelle aussi parfois « corrélation en série » ou « corrélation décalée », car elle mesure la relation entre les valeurs actuelles d’une variable et ses valeurs historiques.
Lorsque l’autocorrélation dans une série chronologique est élevée, il devient facile de prédire les valeurs futures en se référant simplement aux valeurs passées.
Comment calculer l’autocorrélation dans R
Supposons que nous ayons la série chronologique suivante dans R qui montre la valeur d’une certaine variable pendant 15 périodes différentes :
#define data
x <- c(22, 24, 25, 25, 28, 29, 34, 37, 40, 44, 51, 48, 47, 50, 51)
Nous pouvons calculer l’autocorrélation pour chaque décalage de la série chronologique en utilisant la fonction acf() de la bibliothèque tseries :
library(tseries) #calculate autocorrelations acf(x, pl=FALSE) 0 1 2 3 4 5 6 7 8 9 10 1.000 0.832 0.656 0.491 0.279 0.031 -0.165 -0.304 -0.401 -0.458 -0.450 11 -0.369
La façon d’interpréter le résultat est la suivante :
- L’autocorrélation au décalage 0 est 1 .
- L’autocorrélation au décalage 1 est de 0,832 .
- L’autocorrélation au décalage 2 est de 0,656 .
- L’autocorrélation au décalage 3 est de 0,491 .
Et ainsi de suite.
On peut également spécifier le nombre de décalages à afficher avec l’argument lag :
#calculate autocorrelations up to lag=5 acf(x, lag=5, pl=FALSE) Autocorrelations of series 'x', by lag 0 1 2 3 4 5 1.000 0.832 0.656 0.491 0.279 0.031
Comment tracer la fonction d’autocorrélation dans R
Nous pouvons tracer la fonction d’autocorrélation pour une série temporelle dans R en n’utilisant simplement pas l’argument pl=FALSE :
#plot autocorrelation function
acf(x)
L’axe des x affiche le nombre de décalages et l’axe des y affiche l’autocorrélation à ce nombre de décalages. Par défaut, le tracé commence à lag = 0 et l’autocorrélation sera toujours de 1 à lag = 0.
Vous pouvez également spécifier un titre différent pour l’intrigue en utilisant l’argument principal :
#plot autocorrelation function with custom title acf(x, main='Autocorrelation by Lag')
Ressources additionnelles
Comment calculer l’autocorrélation en Python
Comment calculer l’autocorrélation dans Excel