自相關函數是衡量時間序列數據隨著時間推移自身特性的方法之一。使用Python可以快速地計算出自相關函數并進行可視化分析。
import numpy as np import matplotlib.pyplot as plt # 構造時間序列數據 np.random.seed(0) ts_data = np.cumsum(np.random.randn(365)) # 計算自相關函數 def autocorrelation(x, t): return np.corrcoef(np.array([x[0:len(x)-t], x[t:len(x)]])) lags = range(1, 31) r = np.array([autocorrelation(ts_data, lag)[0][1] for lag in lags]) # 可視化自相關函數 plt.bar(lags, r) plt.xlabel('Lags') plt.ylabel('Autocorrelation') plt.title('Autocorrelation Plot') plt.show()
以上代碼首先生成了一個長度為365的時間序列數據,并使用autocorrelation函數計算出了30個滯后值的自相關系數。最后通過matplotlib庫繪制出了自相關函數圖,可以直觀地看出滯后值與自相關系數之間的關系。