statsmodels 笔记:自回归模型 AutoReg
生活随笔
收集整理的這篇文章主要介紹了
statsmodels 笔记:自回归模型 AutoReg
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
理論部分“算法筆記:ARIMA_UQI-LIUWJ的博客-CSDN博客
1 基本用法
class statsmodels.tsa.ar_model.AutoReg(endog, lags, trend='c', seasonal=False, exog=None, hold_back=None, period=None, missing='none', *, deterministic=None )2? 參數說明
| endog | 一維序列,需要自回歸的因變量 |
| lags | {None,?int,?list[int]} 包含一個整數或滯后指數列表。 例如,[1,4]只包含滯后1和4,而4則包含滯后1、2、3和4。 None排除所有AR滯后,且行為一致為0。 |
3 舉例說明
3.1 訓練模型
import pandas as pd import numpy as np from statsmodels.tsa.ar_model import AutoReg import matplotlib.pyplot as plt from sklearn.metrics import mean_squared_error as MSEdf = pd.read_csv('https://raw.githubusercontent.com/jbrownlee/Datasets/master/daily-min-temperatures.csv',index_col=0, parse_dates=True)x = df.values lag=[1,3,7] #滯后集,表示當前時刻的時序信號會受到多少過去時刻時序信號的影響。train, test = x[:-max(lag)], x[-max(lag):] # 把模型數據分為train和test,分別用來訓練模型和對比模型預測結果model_fit = AutoReg(train,lag,old_names=False).fit() #訓練模型print(model_fit.params) #[1.3344155 0.61595801 0.10489587 0.15938696] ''' 從前往后分別是:偏差,一個時間片之前數據的影響,3個時間片之前數據的影響,7個時間片之前數據的影響(和lag順序一致) '''3.2 測試模型
history = train[-max(lag):] history = np.hstack(history).tolist() print(history) #[17.2, 14.7, 15.4, 13.1, 13.2, 13.9, 10.0] test = np.hstack(test).tolist() print(test) #test = np.hstack(test).tolist() #[12.9, 14.6, 14.0, 13.6, 13.5, 15.7, 13.0] redictions = [] for t in range(len(test)):#逐時間片地預測late = history[-max(lag):]#本輪時間片所能看到的過去的時序信號yhat = params[0]#params[0]是偏移量for i in range(len(lag)):yhat += params[i+1] * late[max(lag)-lag[i]]#參數乘以對應的過去時序信號predictions.append(yhat)obs = test[t]history.append(obs)#當前的test信號也作為我們已經看過的過去信號print(np.mean((np.array(test) - np.array(predictions))**2)) #1.5267307279954954 # 得到mean_squared_error, MSEplt.plot(test) plt.plot(predictions, color='r') plt.show()總結
以上是生活随笔為你收集整理的statsmodels 笔记:自回归模型 AutoReg的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学笔记:重要性采样
- 下一篇: 机器学习笔记:向量自回归模型VAR