Explora la autocorrelacion con un lag plot

6.7.24

Explora la autocorrelacion con un lag plot

Actualizado 2020-03-14 Lectura 1 min

Para detectar autocorrelacion en series temporales, grafica el valor anterior frente al actual. Si la nube se inclina hacia arriba, la autocorrelacion es fuerte.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
import matplotlib.pyplot as plt

rng = np.random.default_rng(11)
series = np.cumsum(rng.normal(0, 1.2, size=120)) + 50
lag = 1

x_prev = series[:-lag]
x_curr = series[lag:]

fig, ax = plt.subplots(figsize=(4.4, 4.4))
ax.scatter(x_prev, x_curr, color="#38bdf8", alpha=0.7)

coef = np.corrcoef(x_prev, x_curr)[0, 1]
ax.set_xlabel("Valor en t-1")
ax.set_ylabel("Valor actual")
ax.set_title(f"Dispersión con lag {lag} (corr {coef:.2f})")
ax.grid(alpha=0.2)

lims = [min(series) - 2, max(series) + 2]
ax.plot(lims, lims, color="#475569", linestyle="--", linewidth=1)
ax.set_xlim(lims)
ax.set_ylim(lims)

fig.tight_layout()

plt.show()

Una pendiente ascendente indica autocorrelacion fuerte.

Consejos de lectura #

  • Si los puntos se alinean hacia arriba, la autocorrelacion es fuerte y el patron persiste.
  • Una nube circular sugiere autocorrelacion debil, cercana a un random walk.
  • Comparar varios lags en small multiples ayuda a elegir el lag mas util.