Para detectar autocorrelacion en series temporales, grafica el valor anterior frente al actual. Si la nube se inclina hacia arriba, la autocorrelacion es fuerte.
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()

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.