ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează doi vectori, x_t0 și x_t1, fiecare de lungime n-1, astfel încât liniile să corespundă perechilor (x[t], x[t-1]).
  • Confirmă că x_t0 și x_t1 formează perechi (x[t], x[t-1]) folosind codul deja scris.
  • Folosește plot() pentru a vizualiza diagrama de dispersie a lui x_t0 și x_t1.
  • Folosește cor() pentru a calcula corelația dintre x_t0 și x_t1.
  • Folosește acf() cu x pentru a calcula automat autocorelația de ordinul 1. Setează argumentul lag.max la 1 pentru a obține un singur interval de decalaj și setează argumentul plot la FALSE.
  • Confirmă că factorul de diferență este (n-1)/n folosind 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
Editează și rulează codul