CommencezCommencez gratuitement

Calcul des autocorrélations

Les autocorrélations, ou corrélations décalées, servent à déterminer si une série chronologique dépend de son passé. Pour une série x de longueur n, on considère les n-1 paires d'observations espacé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 d'ordre 1 (lag-1) de x peut être estimée comme la corrélation empirique de ces paires (x[t], x[t-1]).

En général, 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 d'ordre 1.

Heureusement, la commande acf() offre un raccourci. En appliquant acf(..., lag.max = 1, plot = FALSE) à une série x, on calcule automatiquement l'autocorrélation d'ordre 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 privilégiée en analyse de séries chronologiques, et les autocorrélations obtenues ne diffèrent que d'un facteur de (n-1)/n.

Dans cet exercice, vous pratiquerez à la fois le calcul manuel et automatique d'une autocorrélation d'ordre 1. La série x et sa longueur n (150) ont déjà été chargées. La série est affichée dans le graphique à droite.

Cette activité fait partie du cours

Analyse des séries chronologiques en R

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]).
  • Confirmez que x_t0 et x_t1 forment bien des paires (x[t], x[t-1]) à l'aide du code déjà fourni.
  • 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 d'ordre 1. Réglez l'argument lag.max à 1 pour produire un seul décalage et l'argument plot à FALSE.
  • Confirmez que le facteur de différence est (n-1)/n à l'aide du code déjà fourni.

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