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
Instructions de l’exercice
- Créez deux vecteurs,
x_t0etx_t1, chacun de longueurn-1, de sorte que les lignes correspondent aux paires(x[t], x[t-1]). - Confirmez que
x_t0etx_t1forment bien des paires(x[t], x[t-1])à l'aide du code déjà fourni. - Utilisez
plot()pour afficher le nuage de points dex_t0etx_t1. - Utilisez
cor()pour afficher la corrélation entrex_t0etx_t1. - Utilisez
acf()avecxpour calculer automatiquement l'autocorrélation d'ordre 1. Réglez l'argumentlag.maxà1pour produire un seul décalage et l'argumentplotà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