VAR模型
文章目錄
- 一、VAR是什么?
- 1.引入庫
- 2.讀入數據
- 3.執行程序
- 總結
一、VAR是什么?
以金融價格為例,傳統的時間序列模型比如ARIMA,ARIMA-GARCH等,只分析價格自身的變化,模型的形式為:
其中稱為自身的滯后項。
但是VAR模型除了分析自身滯后項的影響外,還分析其他相關因素的滯后項對未來值產生的影響,模型的形式為:
其中就是其他因子的滯后項。
總結一下,就是可以把VAR模型看做是集合多元線性回歸的優點(可以加入多個因子)以及時間序列模型的優點(可以分析滯后項的影響)的綜合模型。
VAR其實是一類模型,以上是最基礎的VAR模型形式,其他還有SVAR,CVAR,VECM,同統稱為VAR類模型
1.引入庫
代碼如下(示例):
# 模型相關包 import statsmodels.api as sm import statsmodels.stats.diagnostic # 畫圖包 import matplotlib.pyplot as plt # 其他包 import pandas as pd import numpy as np from sklearn.metrics import precision_score, recall_score, f1_score import sklearn.metrics as mc ##########################畫圖############################################ # 在我的 notebook 里,要設置下面兩行才能顯示中文 plt.rcParams['font.family'] = ['sans-serif'] # 如果是在 PyCharm 里,只要下面一行,上面的一行可以刪除 plt.rcParams['font.sans-serif'] = ['SimHei']2.讀入數據
代碼如下(示例):
df = pd.read_excel(r'C:\Users\lidongming\Desktop\數據大賽數據\xgboost\宏觀因子VAR.xlsx',index_col='指標名稱')df.index = pd.to_datetime(df.index) # 將字符串索引轉換成時間索引# 生成pd.Series對象 df3.執行程序
#建立對象,1就是你自己定的滯后階數,這里的矩陣一定要是正定的,就線性無關的 orgMod = sm.tsa.VARMAX(df,order=(1,0),exog=None) #估計:就是模型 fitMod = orgMod.fit(maxiter=1000,disp=False) # 打印統計結果 print(fitMod.summary()) # 獲得模型殘差 resid = fitMod.resid result = {'fitMod':fitMod,'resid':resid} YUCE=fitMod.predict() YUCE總結
VAR的階數要看下面這個文章怎么去定義,下面這個文章講的比較詳細,這個方法我初步用于數據創新大賽的VAR預測宏觀指標,加XGBOOST預測國債收益率。
這個是VAR模型的比較詳細的文章
總結
- 上一篇: 微信小程序map组件拖拽地图获取经纬度,
- 下一篇: 生成器脚本