statsmodels 笔记:VAR
生活随笔
收集整理的這篇文章主要介紹了
statsmodels 笔记:VAR
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 數據&庫函數
import numpy as np import pandas import statsmodels.api as sm from statsmodels.tsa.api import VAR mdata = sm.datasets.macrodata.load_pandas().datadates = mdata[['year', 'quarter']].astype(int).astype(str)quarterly = dates["year"] + "Q" + dates["quarter"]mdata = mdata[['realgdp','realcons','realinv']]mdata.index = pandas.DatetimeIndex(quarterly)data = np.log(mdata).diff().dropna()?
2 VAR
????????VAR類假設過去的時間序列是平穩的。非平穩數據通常可以通過一階差分或其他方法轉換為平穩數據。對于直接分析非平穩時間序列,一個標準的穩定VAR(p)模型是不合適的。
? ? ? ? 判斷數據平穩性,可以用:statsmodels筆記:判斷數據平穩性(adfuller)_UQI-LIUWJ的博客-CSDN博客
class statsmodels.tsa.vector_ar.var_model.VAR(endog)????????endog就是要傳入VAR的數據
舉例:
model = VAR(data)2.1 方法&屬性
fit(maxlags)? | 喂入 最大的時延(最多考慮過去多久的自回歸),fit數據 ?? |
summary | 對模型的分析 |
k_ar | 這個model對應的maxlag值 |
select_order | VAR.select_order(maxlags=None,trend='c') 基于每個可用信息標準計算滯后順序選擇 (滯后順序的選擇可能是一個困難的問題。標準分析采用似然檢驗或基于信息準則的順序選擇。VAR已經實現了后者) ?AIC和BIC需要越小越好,算法筆記:ARIMA_UQI-LIUWJ的博客-CSDN博客 通過上面的輸出,我們可以發現lag取1或者3的時候比較好 |
2.2 繪圖
2.2.1 plot()
就是把不同的time series分別畫出來
m=model.fit(9) m.plot()?2.2.2?繪制時間序列自相關函數
ACF理論部分見:算法筆記:ARIMA_UQI-LIUWJ的博客-CSDN博客
m.plot_acorr()2.2.3 plot_forecast
預測值和上下2個標準差的區間?
?
?3 預測
線性預測器是基于均方誤差的最優h步提前預測:
我們可以使用預測函數來生成這個預測。請注意,我們必須指定預測的“初始值”:
m.forecast(data.values[-2:], 5) ''' array([[ 0.00502587, 0.0053712 , 0.0051154 ],[ 0.00593683, 0.00784779, -0.00302473],[ 0.00662889, 0.00764349, 0.00393308],[ 0.00731516, 0.00797044, 0.00657495],[ 0.00732726, 0.00808811, 0.00649793]]) '''表示以哪幾個數字開始,向后預測幾個時間片
array([[ 0.00502587, 0.0053712 , 0.0051154 ],[ 0.00593683, 0.00784779, -0.00302473],[ 0.00662889, 0.00764349, 0.00393308],[ 0.00731516, 0.00797044, 0.00657495],[ 0.00732726, 0.00808811, 0.00649793]])?
總結
以上是生活随笔為你收集整理的statsmodels 笔记:VAR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 强化学习笔记:PPO 【近端策略优化(P
- 下一篇: DQN笔记:MC TD