IniziaInizia gratis

Calcolare le autocorrelazioni

Le autocorrelazioni, o correlazioni ritardate, servono per valutare se una serie temporale dipende dal proprio passato. Per una serie temporale x di lunghezza n consideriamo le n-1 coppie di osservazioni distanti un'unità di tempo. La prima coppia è (x[2],x[1]), la successiva è (x[3],x[2]). Ogni coppia ha la forma (x[t],x[t-1]), dove t è l'indice dell'osservazione, che in questo caso varia da 2 a n. L'autocorrelazione al ritardo 1 (lag-1) di x può essere stimata come la correlazione campionaria di queste coppie (x[t], x[t-1]).

In generale, possiamo creare manualmente queste coppie di osservazioni. Per prima cosa, crea due vettori, x_t0 e x_t1, entrambi di lunghezza n-1, in modo che le righe corrispondano alle coppie (x[t], x[t-1]). Poi applica la funzione cor() per stimare l'autocorrelazione al ritardo 1.

Per fortuna, il comando acf() offre una scorciatoia. Applicando acf(..., lag.max = 1, plot = FALSE) a una serie x si calcola automaticamente l'autocorrelazione al ritardo 1.

Infine, nota che le due stime differiscono leggermente perché usano scalature lievemente diverse nel calcolo della covarianza campionaria, 1/(n-1) contro 1/n. Sebbene la seconda fornisca una stima distorta, è preferita nell'analisi delle serie temporali, e le stime di autocorrelazione risultanti differiscono solo per un fattore (n-1)/n.

In questo esercizio, metterai in pratica sia il calcolo manuale sia quello automatico dell'autocorrelazione al ritardo 1. La serie temporale x e la sua lunghezza n (150) sono già state caricate. La serie è mostrata nel grafico a destra.

Questo esercizio fa parte del corso

Analisi delle serie temporali in R

Visualizza il corso

Istruzioni dell'esercizio

  • Crea due vettori, x_t0 e x_t1, entrambi di lunghezza n-1, in modo che le righe corrispondano alle coppie (x[t], x[t-1]).
  • Conferma che x_t0 e x_t1 rappresentano coppie (x[t], x[t-1]) usando il codice già scritto.
  • Usa plot() per visualizzare lo scatterplot di x_t0 e x_t1.
  • Usa cor() per visualizzare la correlazione tra x_t0 e x_t1.
  • Usa acf() con x per calcolare automaticamente l'autocorrelazione al ritardo 1. Imposta l'argomento lag.max a 1 per ottenere un singolo periodo di ritardo e imposta l'argomento plot a FALSE.
  • Conferma che il fattore di differenza è (n-1)/n usando il codice già scritto.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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
Modifica ed esegui il codice