CommencerCommencez gratuitement

Calcul d’autocorrélations

Les autocorrélations, ou corrélations décalées, servent à évaluer si une série temporelle dépend de son passé. Pour une série temporelle x de longueur n, on considère les n-1 paires d’observations séparées d’une unité de temps. La première paire est (x[2],x[1]), puis (x[3],x[2]). Chaque paire est de la forme (x[t],x[t-1]) où t est l’indice d’observation, que l’on fait varier de 2 à n dans ce cas. L’autocorrélation au décalage 1 de x peut être estimée comme la corrélation empirique de ces paires (x[t], x[t-1]).

De manière générale, on peut créer manuellement ces paires d’observations. Créez d’abord deux vecteurs, x_t0 et x_t1, chacun de longueur n-1, de sorte que les lignes correspondent aux paires (x[t], x[t-1]). Appliquez ensuite la fonction cor() pour estimer l’autocorrélation au décalage 1.

Heureusement, la commande acf() propose un raccourci. Appliquer acf(..., lag.max = 1, plot = FALSE) à une série x calcule automatiquement l’autocorrélation au décalage 1.

Enfin, notez que les deux estimations diffèrent légèrement car elles utilisent des mises à l’échelle différentes dans le calcul de la covariance empirique, 1/(n-1) contre 1/n. Bien que la seconde fournisse une estimation biaisée, elle est préférée en analyse de séries temporelles, et les estimations d’autocorrélation résultantes ne diffèrent que d’un facteur (n-1)/n.

Dans cet exercice, vous allez pratiquer le calcul manuel et automatique d’une autocorrélation au décalage 1. La série temporelle x et sa longueur n (150) ont déjà été chargées. La série est affichée dans le graphique à droite.

Cet exercice fait partie du cours

<cours>Analyse de séries temporelles en R</cours>
Voir le cours

Instructions de l’exercice

  • Créez deux vecteurs, x_t0 et x_t1, chacun de longueur n-1, de sorte que les lignes correspondent aux paires (x[t], x[t-1]).
  • Vérifiez que x_t0 et x_t1 correspondent bien aux paires (x[t], x[t-1]) à l’aide du code préécrit.
  • Utilisez plot() pour afficher le nuage de points de x_t0 et x_t1.
  • Utilisez cor() pour afficher la corrélation entre x_t0 et x_t1.
  • Utilisez acf() avec x pour calculer automatiquement l’autocorrélation au décalage 1. Définissez l’argument lag.max à 1 pour produire un seul décalage et l’argument plot à FALSE.
  • Vérifiez que le facteur de différence est (n-1)/n à l’aide du code préécrit.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Define x_t0 as x[-1]
x_t0 <- 

# Define x_t1 as x[-n]
x_t1 <- 

# Confirm that x_t0 and x_t1 are (x[t], x[t-1]) pairs  
head(cbind(x_t0, x_t1))
  
# Plot x_t0 and x_t1
plot(___, ___)

# View the correlation between x_t0 and x_t1
cor(___, ___)

# Use acf with x
acf(___, lag.max = ___, plot = ___)

# Confirm that difference factor is (n-1)/n
cor(x_t1, x_t0) * (n-1)/n
Modifier et exécuter le code