Python金融時間序列模型ARIMA 和GARCH 在股票市場預測應用|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=24407
最近我們被客戶要求撰寫關于金融時間序列模型的研究報告,包括一些圖形和統(tǒng)計輸出。
這篇文章討論了自回歸綜合移動平均模型 (ARIMA) 和自回歸條件異方差模型 (GARCH) 及其在股票市場預測中的應用?(?點擊文末“閱讀原文”獲取完整代碼數(shù)據(jù)********?)。
介紹
一個?ARMA (AutoRegressive-Moving Average)")?有兩部分,AR(p)部分和MA(q)部分,表示如下


其中 L 是滯后算子,?i 是白噪聲。它可以通過 Box-Jenkins method. 我們可能會使用 PACF 繪制識別 AR 滯后階數(shù) p,和 ACF 圖以識別 MA 滯后階數(shù) q;或使用信息,例如 AIC 和 BIC 做模型選擇。
ARIMA (AutoRegressive Integrated Moving Average)")?是 ARMA 的拓展,通過為非平穩(wěn)過程添加階數(shù)為 d 的積分部分。
ARIMA是針對價格水平或收益率的,而GARCH(廣義自回歸條件異方差)則試圖對波動率或收益率平方的聚類進行建模。它將ARMA項擴展到方差方面。


作為隨機波動率模型的離散版本,GARCH也能捕捉到股票市場的厚尾效應。因此,將ARIMA和GARCH結合起來,預計在模擬股票價格時比單獨一個模型更適合。在這篇文章中,我們將把它們應用于標普500指數(shù)的價格。
ARIMA
首先,眾所周知,股票價格不是平穩(wěn)的;而收益可能是平穩(wěn)的。ADF單位根檢驗結果。
#?價格是已知的非平穩(wěn)的;收益是平穩(wěn)的import?adfullerrsut?=?aduler(close)prnt(f'ADF?Satitic:?{reslt[]},?pale:?{rslt1]}')??# null 假設:單位根存在;不能拒絕 null。relt?=?adfler(histet)prnt(f'ADF?Statistic:?{reut[0]},?pvaue:?{rslt[1]}')???#?拒絕單位根的空假設?==>?平穩(wěn)
收益序列的 ADF p 值為 0,拒絕單位根的原假設。因此,我們在 ARIMA(p, d, q) 中接受 d=1,下一步是識別滯后 p 和 q。ACF 和 PACF 圖表明滯后最多 35 個工作日。如果我們按照圖表進行擬合,將有太多參數(shù)無法擬合。一種解決方案是使用每周或每月圖表。在這里,我們將最大滯后時間限制為 5 天,并使用 AIC 選擇最佳模型。

for?p?in?rage(6):????for?q?in?rage(6):????????ry:????????????mft?=?fit(disp=0)????????????ic[(p,?q)]?=?fiaic????????except:????????????pass
下一步是擬合模型并通過殘差統(tǒng)計評估模型擬合。殘差仍然顯示出一些自相關,并且沒有通過正態(tài)性檢驗。由于滯后階數(shù)限制,這在某種程度上是預料之中的。
盡管如此,讓我們繼續(xù)最后一步并使用模型進行預測。下面比較了對測試集的收益率預測和實際收益率。

收益率預測以 0% 為中心,置信區(qū)間在 ±2% 之間。結果并不是特別令人印象深刻。畢竟,市場正在經(jīng)歷一個動蕩的階段,在預測時間窗口內甚至下跌了 6%。
點擊標題查閱往期內容

R語言ARIMA-GARCH波動率模型預測股票市場蘋果公司日收益率時間序列

左右滑動查看更多

01

02

03

04

GARCH
讓我們看看加入GARCH效果是否會產(chǎn)生更好的結果。建模過程類似于ARIMA:首先識別滯后階數(shù);然后擬合模型并評估殘差,最后如果模型令人滿意,就用它來預測。
我們將 AR 滯后和 GARCH 滯后都限制為小于 5。結果最優(yōu)階為 (4,2,2)。
for?l?in?rage(5):????for?p?in?rage(1,?5):????????for?q?in?rage(1,?5):????????????try:????????????????mdl?=?arch(is_et,?man='ARX',??vol='Garch',?p=p,?o=0,?q=q,?dist='Nomal')????????????????fit(last_obs=spldat)????????????????dc_ic[(l,?p,?q)]?=aic????????????except:????????????????pass
接下來讓我們根據(jù)選擇的最佳參數(shù)來擬合模型,如下所示。證實了均值模型是AR(4),方差模型是GARCH(2, 2)。一些系數(shù)在統(tǒng)計上不顯著。

最后但并非最不重要的是,預測區(qū)間從±4%下降到±3%,然后又反彈到±5%,這清楚地表明了模型的波動性集群。請注意,這里是單步滾動預測,應該比靜態(tài)的多期預測要好。

趨勢平穩(wěn)和差分平穩(wěn)
趨勢平穩(wěn),即確定性趨勢,具有確定性均值趨勢。相反,差分平穩(wěn)具有隨機趨勢。前者可以用OLS估計,后者需要先求差分。
考慮一個簡單的過程

如果 φ<1,則過程是趨勢平穩(wěn)的;也就是說,如果我們減去趨勢 at,則過程變得平穩(wěn)。若φ=1,則差分平穩(wěn)。將第二個方程代入第一個方程很容易看出隨機性,并將方程改寫為


點擊文末?“閱讀原文”
獲取全文完整資料。
本文選自《Python金融時間序列模型ARIMA 和GARCH 在股票市場預測應用》。
點擊標題查閱往期內容
金融時間序列模型ARIMA 和GARCH 在股票市場預測應用
時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言ARIMA-GARCH波動率模型預測股票市場蘋果公司日收益率時間序列
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言多元Copula GARCH 模型時間序列預測
python中的copula:Frank、Clayton和Gumbel copula模型估計與可視化
R語言中的copula GARCH模型擬合時間序列并模擬分析
matlab使用Copula仿真優(yōu)化市場風險數(shù)據(jù)VaR分析
R語言多元Copula GARCH 模型時間序列預測
R語言Copula函數(shù)股市相關性建模:模擬Random Walk(隨機游走)
R語言實現(xiàn) Copula 算法建模依賴性案例分析報告
R語言ARMA-GARCH-COPULA模型和金融時間序列案例
R語言基于copula的貝葉斯分層混合模型的診斷準確性研究
R語言COPULA和金融時間序列案例
matlab使用Copula仿真優(yōu)化市場風險數(shù)據(jù)VaR分析
matlab使用Copula仿真優(yōu)化市場風險
R語言多元CopulaGARCH模型時間序列預測
R語言Copula的貝葉斯非參數(shù)MCMC估計
R語言COPULAS和金融時間序列R語言乘法GARCH模型對高頻交易數(shù)據(jù)進行波動性預測
R語言GARCH-DCC模型和DCC(MVT)建模估計
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測
R語言時間序列GARCH模型分析股市波動率
R語言ARMA-EGARCH模型、集成預測算法對SPX實際波動率進行預測
matlab實現(xiàn)MCMC的馬爾可夫轉換ARMA - GARCH模型估計
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測
使用R語言對S&P500股票指數(shù)進行ARIMA + GARCH交易策略
R語言用多元ARMA,GARCH ,EWMA, ETS,隨機波動率SV模型對金融時間序列數(shù)據(jù)建模
R語言股票市場指數(shù):ARMA-GARCH模型和對數(shù)收益率數(shù)據(jù)探索性分析
R語言多元Copula GARCH 模型時間序列預測
R語言使用多元AR-GARCH模型衡量市場風險
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言用Garch模型和回歸模型對股票價格分析
GARCH(1,1),MA以及歷史模擬法的VaR比較
matlab估計arma garch 條件均值和方差模型
R語言ARMA-GARCH-COPULA模型和金融時間序列案例