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>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]). - Vérifiez que
x_t0etx_t1correspondent bien aux paires(x[t], x[t-1])à l’aide du code préécrit. - 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 au décalage 1. Définissez l’argumentlag.maxà1pour produire un seul décalage et l’argumentplotà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