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
Instrucciones del ejercicio
- Crea dos vectores,
x_t0yx_t1, cada uno de longitudn-1, de modo que las filas correspondan a los pares(x[t], x[t-1]). - Confirma que
x_t0yx_t1forman pares(x[t], x[t-1])usando el código ya escrito. - Usa
plot()para ver el diagrama de dispersión dex_t0yx_t1. - Usa
cor()para ver la correlación entrex_t0yx_t1. - Usa
acf()conxpara calcular automáticamente la autocorrelación de desfase 1. Establece el argumentolag.maxen1para obtener un único periodo de desfase y el argumentoplotenFALSE. - Confirma que el factor de diferencia es
(n-1)/nusando 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