ComenzarEmpieza gratis

Calcular autocorrelaciones

Las autocorrelaciones o correlaciones con desfase se usan para evaluar si una serie temporal depende de su pasado. Para una serie temporal x de longitud n, consideramos los n-1 pares de observaciones separados por una unidad de tiempo. El primer par es (x[2],x[1]), y el siguiente es (x[3],x[2]). Cada par es de la forma (x[t],x[t-1]), donde t es el índice de la observación, que aquí varía de 2 a n. La autocorrelación de desfase 1 de x puede estimarse como la correlación muestral de estos pares (x[t], x[t-1]).

En general, podemos crear manualmente estos pares de observaciones. Primero, crea dos vectores, x_t0 y x_t1, cada uno de longitud n-1, de modo que las filas correspondan a pares (x[t], x[t-1]). Luego aplica la función cor() para estimar la autocorrelación de desfase 1.

Por suerte, el comando acf() ofrece un atajo. Al aplicar acf(..., lag.max = 1, plot = FALSE) a una serie x, se calcula automáticamente la autocorrelación de desfase 1.

Por último, ten en cuenta que las dos estimaciones difieren ligeramente porque usan escalados distintos al calcular la covarianza muestral, 1/(n-1) frente a 1/n. Aunque la segunda produce un estimador sesgado, en análisis de series temporales se prefiere, y las autocorrelaciones resultantes solo difieren por un factor de (n-1)/n.

En este ejercicio, vas a practicar tanto el cálculo manual como el automático de una autocorrelación de desfase 1. La serie temporal x y su longitud n (150) ya están cargadas. La serie se muestra en el gráfico de la derecha.

Este ejercicio forma parte del curso

Análisis de series temporales en R

Ver curso

Instrucciones del ejercicio

  • Crea dos vectores, x_t0 y x_t1, cada uno de longitud n-1, de modo que las filas correspondan a los pares (x[t], x[t-1]).
  • Confirma que x_t0 y x_t1 forman pares (x[t], x[t-1]) usando el código ya escrito.
  • Usa plot() para ver el diagrama de dispersión de x_t0 y x_t1.
  • Usa cor() para ver la correlación entre x_t0 y x_t1.
  • Usa acf() con x para calcular automáticamente la autocorrelación de desfase 1. Establece el argumento lag.max en 1 para obtener un único periodo de desfase y el argumento plot en FALSE.
  • Confirma que el factor de diferencia es (n-1)/n usando el código ya escrito.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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
Editar y ejecutar código