Calcularea autocorelațiilor
Autocorelațiile, sau corelațiile cu decalaj, sunt folosite pentru a evalua dacă o serie de timp depinde de valorile sale anterioare. Pentru o serie de timp x de lungime n, luăm în considerare cele n-1 perechi de observații situate la o unitate de timp distanță. Prima astfel de pereche este (x[2],x[1]), iar următoarea este (x[3],x[2]). Fiecare pereche are forma (x[t],x[t-1]), unde t este indicele observației, care variază de la 2 la n în acest caz. Autocorelația de ordinul 1 a lui x poate fi estimată ca și corelația eșantionului acestor perechi (x[t], x[t-1]).
În general, putem crea manual aceste perechi de observații. Mai întâi, creăm doi vectori, x_t0 și x_t1, fiecare de lungime n-1, astfel încât liniile să corespundă perechilor (x[t], x[t-1]). Apoi aplicăm funcția cor() pentru a estima autocorelația de ordinul 1.
Din fericire, comanda acf() oferă o scurtătură. Aplicând acf(..., lag.max = 1, plot = FALSE) asupra unei serii x, autocorelația de ordinul 1 se calculează automat.
În final, reține că cele două estimări diferă ușor, deoarece folosesc scalări diferite în calculul covarianței eșantionului: 1/(n-1) față de 1/n. Deși aceasta din urmă produce o estimare părtinită, este preferată în analiza seriilor de timp, iar estimările autocorelației rezultate diferă doar printr-un factor de (n-1)/n.
În acest exercițiu, vei exersa atât calculul manual, cât și cel automat al autocorelației de ordinul 1. Seria de timp x și lungimea sa n (150) sunt deja încărcate. Seria este afișată în graficul din dreapta.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în R
Instrucțiuni pentru exercițiu
- Creează doi vectori,
x_t0șix_t1, fiecare de lungimen-1, astfel încât liniile să corespundă perechilor(x[t], x[t-1]). - Confirmă că
x_t0șix_t1formează perechi(x[t], x[t-1])folosind codul deja scris. - Folosește
plot()pentru a vizualiza diagrama de dispersie a luix_t0șix_t1. - Folosește
cor()pentru a calcula corelația dintrex_t0șix_t1. - Folosește
acf()cuxpentru a calcula automat autocorelația de ordinul 1. Setează argumentullag.maxla1pentru a obține un singur interval de decalaj și setează argumentulplotlaFALSE. - Confirmă că factorul de diferență este
(n-1)/nfolosind codul deja scris.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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