Tipos de autocorrelación

Autocorrelación: 

Como discutimos en este artículo, la Autocorrelación se define como la medida del grado de similitud entre una serie de tiempo dada y la versión retrasada de esa serie de tiempo en períodos de tiempo sucesivos. La autocorrelación mide el grado de similitud entre una serie temporal y la versión retrasada de esa serie temporal en diferentes intervalos.

Función de autocorrelación:

Supongamos que tenemos una serie de tiempo {X t } que tiene la siguiente media:

\mu = E\left [ X_t \right ]
 

y las funciones de autocovarianza

\gamma_x\left ( t+k, t \right ) = Cov\left ( X_{t+k}, X_t \right ) \, = E\left [  \left ( X_{t+k}- \mu_{t+k} \right )\left ( X_t -\mu_t \right )\right ]
 

en t=0,

\gamma_x\left (k, 0\right ) = \gamma_x\left (k\right )
 

y la función de autocorrelación se define como:

\rho_x\left ( k \right ) = \frac{\gamma_x\left (k\right )}{\gamma_x\left (0\right )} = Corr\left ( X_{t+k}, X_t \right )
 

El valor de la autocorrelación varía de -1 para la autocorrelación perfectamente negativa y 1 para la autocorrelación perfectamente positiva. El valor más cercano a 0 se denomina sin autocorrelación.

Autocorrelación positiva:

Autocorrelación positiva

Corr\left ( X_{t+k}, X_t \right ) > 0 \,for\, k > 0
 

A continuación se muestra el gráfico del conjunto de datos que representa la autocorrelación positiva en lag=1:

Autocorrelación negativa:

Autocorrelación negativa

Corr\left ( X_{t+k}, X_t \right ) < 0 \,for\, k > 0
 

A continuación se muestra el gráfico de la serie de tiempo que representa la autocorrelación negativa en lag=1:

Autocorrelación fuerte

Podemos concluir que los datos tienen una fuerte autocorrelación si el gráfico de autocorrelación es similar a los siguientes gráficos:

La gráfica de autocorrelación comienza con una autocorrelación muy alta en el desfase 1, pero disminuye lentamente hasta que se vuelve negativa y comienza a mostrar una autocorrelación negativa creciente. Este tipo de patrón indica una fuerte autocorrelación , que puede ser útil para predecir tendencias futuras.

 El siguiente paso sería estimar los parámetros para el modelo autorregresivo:

 Y_{i} = A_0 + A_1*Y_{i-1} + E_{i}
 

La suposición de aleatoriedad para el ajuste por mínimos cuadrados se aplica a los residuos del modelo. Es decir, aunque los datos originales muestran no aleatoriedad, los residuos después de ajustar Y i contra Y i-1 deberían dar como resultado residuos aleatorios.

Autocorrelación débil

Podemos concluir que los datos tienen una autocorrelación débil si la gráfica de autocorrelación es similar a la siguiente gráfica con retraso = 1:

Gráfica de retraso en Lag = 1

El gráfico anterior muestra que hay algo de autocorrelación en lag=1 porque si no hay autocorrelación, la gráfica será similar a esta gráfica en valores aleatorios con lag=1

La conclusión se puede sacar de la gráfica anterior.

  • Un modelo autorregresivo subyacente con autocorrelación positiva/negativa moderada.
  • Hubo muy pocos valores atípicos.

El gráfico de autocorrelación débil anterior tiene algún modelo autorregresivo que se puede representar de tal forma 

Y_(i+1) = A_0 + A_1*Y_(i) + random-error
 

en Y i =0, podemos obtener el residual de los estimadores.

Y_(i+1) = A_0 + random-error
 

Es fácil realizar una estimación en el gráfico de retardo debido a que Y i+1 e Y i son sus ejes.

Implementación

  • En esta implementación, veremos cómo generar gráficos de correlación y gráficos de retraso. Usaremos el conjunto de datos de parpadeo y algunas muestras generadas aleatoriamente para este propósito.

python3

# Necessary imports
import numpy as np
from numpy.random import random_sample
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.graphics.tsaplots import plot_acf
 
# Generate Autocorrelation plot at different lags
# with a given level of significance.
weak_Corr_df = pd.read_csv('flicker.csv', sep ='\n', header=None)
plot_acf(weak_Corr_df, alpha = 0.05)
 
# Generate Lag plots for a particular lag value
pd.plotting.lag_plot(weak_Corr_df, lag = 1)
 
# Generate 200 random numbers and plot lag plot and autocorrelation plot for that
random_Series = pd.Series(random_sample(200))
pd.plotting.lag_plot(random_Series, lag = 1)
plot_acf(random_Series, alpha = 0.05)
  • Para el conjunto de datos de Flicker, los gráficos son los siguientes:

Datos de parpadeo de autocorrelación

Gráfica de retraso para datos de parpadeo

  • Para conjuntos de datos aleatorios normales, las gráficas son las siguientes

Gráfica de autocorrelación

Gráfica de retraso para datos aleatorios en retraso = 1

Publicación traducida automáticamente

Artículo escrito por pawangfg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *