การตรวจออโตคอรีเลชันในอนุกรมเวลา ใช้แล็กพลอตที่วาดค่าก่อนหน้ากับค่าปัจจุบัน ถ้าแนวโน้มไล่ขึ้นขวา แปลว่าความสัมพันธ์สูง
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("ค่าช่วง t-1")
ax.set_ylabel("ค่าปัจจุบัน")
ax.set_title(f"แล็ก {lag} (ค่าสหสัมพันธ์ {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()

อ่านอย่างไร #
- จุดเรียงขึ้นขวาหมายถึงออโตคอรีเลชันแรงและแนวโน้มต่อเนื่อง
- ถ้าเป็นก้อนกลม ๆ แปลว่าความสัมพันธ์ต่ำ ใกล้เคียง random walk
- ลองพล็อตหลายแล็กแบบ small multiples เพื่อเลือกแล็กที่เหมาะเป็นฟีเจอร์