Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tính tự tương quan (autocorrelation) Series với lag Python pandas

Giả sử bạn có một Series và muốn tính hệ số tự tương quan (autocorrelation) ở lag mặc định (1) và lag=2.

Giải pháp

  • Tạo Series (có thể chứa NaN).
  • Tự tương quan lag=1 (mặc định): series.autocorr().
  • Tự tương quan lag=2: series.autocorr(lag=2).

Mã ví dụ

import pandas as pd
import numpy as np

series = pd.Series([2, 10, 3, 4, 9, 10, 2, np.nan, 3])
print("Series:\n", series)

print("\nTự tương quan (lag=1):", series.autocorr())
print("Tự tương quan (lag=2):", series.autocorr(lag=2))

Kết quả

Series:
0    2.0
1   10.0
2    3.0
3    4.0
4    9.0
5   10.0
6    2.0
7    NaN
8    3.0
dtype: float64

Tự tương quan (lag=1): -0.4711538461538461
Tự tương quan (lag=2): -0.2933396642805515

Giải thích:

  • Autocorrelation đo lường sự tương quan giữa chuỗi và bản dịch của chính nó.
  • Lag=1: So sánh t với t-1. Giá trị âm (-0.47) → xu hướng dao động ngược.
  • Lag=2: So sánh t với t-2. Giá trị -0.29.
  • NaN được bỏ qua khi tính toán (pairwise deletion).
  • Dùng trong phân tích chuỗi thời gian (ARIMA, kiểm tra white noise).