拓端tecdat|R語言ARIMA-GARCH波動率模型預(yù)測股票市場蘋果公司日收益率時間序列
原文鏈接:http://tecdat.cn/?p=23934
原文出處:拓端數(shù)據(jù)部落公眾號
引言
在本文中,我們將嘗試為蘋果公司的日收益率尋找一個合適的 GARCH 模型。波動率建模需要兩個主要步驟。
指定一個均值方程(例如 ARMA,AR,MA,ARIMA 等)。
建立一個波動率方程(例如 GARCH, ARCH,這些方程是由 Robert Engle 首先開發(fā)的)。
要做(1),你需要利用著名的Box-Jenkins方法,它包括三個主要步驟。
識別
估算
診斷檢查
這三個步驟有時會有不同的名稱,這取決于你讀的是誰的書。在本文中,我將更多地關(guān)注(2)。
我將使用一個名為quantmod的軟件包,它代表量化金融建模框架。這允許你在R中直接從各種在線資源中抓取金融數(shù)據(jù)。
#install.packages("quantmod") -需要先安裝該軟件包
getSymbols(Symbols = "AAPL",
src="yahoo", #其他來源包括:谷歌、FRED等。
收益通常有一個非常簡單的平均數(shù)方程,這導(dǎo)致了簡單的殘差。
我們首先要測試序列依賴性,這是條件異方差的一個指標(biāo)(序列依賴性與序列相關(guān)不同)。這是通過對原始序列的平方/絕對值進(jìn)行測試,并使用Ljung和Box(1978)的Ljung-Box測試等聯(lián)合假設(shè)進(jìn)行測試,這是一個Portmentau檢驗,正式檢驗連續(xù)自相關(guān),直到預(yù)定的滯后數(shù),如下所示。
其中T是總的周期數(shù),m是你要測試的序列相關(guān)的滯后期數(shù),ρ2k是滯后期k的相關(guān)性,Q?(m)~χ2α有m個自由度。
檢查
下面是AAPL對數(shù)收益時間序列及其ACF,這里我們要尋找顯著的滯后期(也可以運(yùn)行pacf)或存在序列自相關(guān)。
通過觀察ACF,水平序列(對數(shù)收益)并不是真正的自相關(guān),但現(xiàn)在讓我們看一下平方序列來檢查序列依賴性。
我們可以看到,平方序列的ACF顯示出顯著的滯后。這是一個信號,說明我們應(yīng)該在某個時候測試ARCH效應(yīng)。
平穩(wěn)性
我們可以看到,AAPL的對數(shù)回報在某種程度上是一個平穩(wěn)的過程,所以我們將使用Augmented Dicky-Fuller檢驗(ADF)來正式檢驗平穩(wěn)性。ADF是一個廣泛使用的單位根檢驗,即平穩(wěn)性。我們將使用12個滯后期,因為根據(jù)文獻(xiàn)的建議,我們有每日數(shù)據(jù)。 何:存在單位根(系列是非平穩(wěn)的
##
## Title:
## ?Augmented Dickey-Fuller Test
##
## Test Results:
## ? PARAMETER:
## ? ? Lag Order: 12
## ? STATISTIC:
## ? ? Dickey-Fuller: -14.6203
## ? P VALUE:
## ? ? 0.01
##
## Description:
## ?Mon May 25 16:45:37 2020 by user: Florian
上面的P值為0.01,表明我們應(yīng)該拒絕Ho,因此,該系列是平穩(wěn)的。
結(jié)構(gòu)突變檢驗
請注意,我從2008年底開始研究APPL序列。以避免08年大衰退,通常會在數(shù)據(jù)中產(chǎn)生結(jié)構(gòu)性突變(即趨勢的嚴(yán)重下降/跳躍)。我們將對結(jié)構(gòu)性突變/變化進(jìn)行Chow測試。 AAPL的日收益率沒有結(jié)構(gòu)性突變
該圖顯示,用于估計斷點(BP)數(shù)量的BIC(黑線)是BIC線的最小值,所以我們可以確認(rèn)沒有結(jié)構(gòu)性斷點,因為最小值是零,即零斷點。在預(yù)測時間序列時,斷點非常重要。
估計
在這一節(jié)中,我們試圖用auto.arima命令來擬合最佳a(bǔ)rima模型,允許一個季節(jié)性差異和一個水平差異。
正如我們所知,{Yt}的一般ARIMA(p,d,q)。
根據(jù)auto.arima,最佳模型是ARIMA(3,0,2),平均數(shù)為非零,AIC為-14781.55。我們的平均方程如下(括號內(nèi)為SE)。
Auto.arima函數(shù)挑選出具有最低AIC的ARIMA(p,d,q),其中。
其中Λθ是觀察到的數(shù)據(jù)在參數(shù)的mle的概率。因此,如果Auto.arima函數(shù)運(yùn)行N模型,其決策規(guī)則為AIC?=min{AICi}Ni=1
診斷檢查
我們可以看到,我們的ARIMA(3,0,2)的殘差是良好的表現(xiàn)。它們似乎也有一定的正態(tài)分布
##
## ?Ljung-Box test
##
## data: ?Residuals from ARIMA(3,0,2) with non-zero mean
## Q* = 6.7928, df = 4, p-value = 0.1473
##
## Model df: 6. ? Total lags used: 10
現(xiàn)在我們將通過對我們的ARIMA(3,0,2)模型的平方殘差應(yīng)用Ljung-Box測試來檢驗ARCH效應(yīng)。
##
## ?Box-Ljung test
##
## data: ?resid^2
## X-squared = 126.6, df = 12, p-value < 2.2e-16
我們可以看到,殘差平方的 ACF 顯示出許多顯著的滯后期,因此我們得出結(jié)論,確實存在 ARCH 效應(yīng),我們應(yīng)該對波動率進(jìn)行建模。
使用 GARCH 建立波動率模型
上面將我們的平均數(shù)方程中的殘差進(jìn)行了平方,看看大的沖擊是否緊隨在其他大的沖擊之后(無論哪個方向,即負(fù)的或正的),如果是這樣,那么我們就有條件異方差,意味著我們有需要建模的非恒定方差。下面是一個GARCH(m,s)的樣子。
其中{?2t}mt=1是我們通常的特異性沖擊,iid隨機(jī)變量,即?2t~WN(0,σ2?)。我們可以更緊湊地寫成:
其中B是標(biāo)準(zhǔn)的后移算子Bi?2t=?2t-i,Biσ2t=σ2t-i。對于任何整數(shù)ii,以及α和β分別是度數(shù)為m和s的多項式
請注意,一個特殊情況是當(dāng)s=0時,GARCH(m,0)被稱為ARCH(m)。
當(dāng)我說GARCH家族時,它表明模型有變化。
SGARCH。普通GARCH
EGARCH。指數(shù)GARCH,允許波動率不為負(fù)值(這迫使模型只輸出正方差
FGARCH。這是為長記憶模型準(zhǔn)備的。它使用了被稱為 ARFIMA 的 Fractionaly integrated ARIMA(即非整數(shù)整合)。
GARCH-M:這是GARCH的均值,適合你的均值方程中有波動率例如CAPM的方程中有σ。
GJR-GARCH。假設(shè)負(fù)面沖擊和正面沖擊之間存在不對稱性(金融數(shù)據(jù)幾乎都是這樣)。
為收益率序列建立波動率模型包括四個步驟:
通過測試數(shù)據(jù)中的序列依賴性來指定一個均值方程,如果有必要,為收益序列建立一個 計量經(jīng)濟(jì)學(xué)模型(例如,ARIMA 模型)來消除任何線性依賴。
使用平均值方程的殘差來測試ARCH效應(yīng)。
如果ARCH效應(yīng)在統(tǒng)計上是顯著的,就指定一個波動率模型,并對均值和波動率方程進(jìn)行聯(lián)合估計。
仔細(xì)檢查擬合的模型,必要時對其進(jìn)行改進(jìn)。
一個簡單的 GARCH 模型有以下成分。
均值:?
波動率方程:??
誤差假設(shè):?
#以下命令將計算GARCH(m,s)。請記住,對于某些m和s的組合,它可能不會收斂。
garchlist(model="sGARCH", #其他選項有egarch, fgarch等。
garchOrder=c(1,2)), #你可以在這里修改GARCH(m,s)的階數(shù)
mean.model ?, #指定你的ARMA模型,暗示你的模型應(yīng)該是平穩(wěn)的。
distribution.model ? ? ? ? ?#其他分布是 "std "代表t分布,"ged "代表一般誤差分布
我們的波動率方程由GARCH(1,2)給出,AIC:-5.5277(注意GARCH可能無法收斂)。
下面是使用我們的波動率模型對波動率進(jìn)行的預(yù)測。這看起來是一個合理的波動率預(yù)測,但是你想改進(jìn)你的模型。
現(xiàn)在讓我們使用rugarch的標(biāo)準(zhǔn)功能,使用估計的GARCH(1,2)模型來產(chǎn)生σt的滾動預(yù)測,并將它們與|rt|作對比。
最后,我們可以手動編寫代碼來查看隨時間變化的波動率和對數(shù)收益率rt,如下圖。
# 這將有助于在對數(shù)收益率上繪制sigma隨時間變化的圖。
sigma.t #這是你的波動率序列
ggplot()
geom_line(aes(x=as.numeric(
theme_bw()+
結(jié)論
事實證明,GARCH系列是所謂確定性波動率模型的一部分。還有一個家族叫做隨機(jī)波動率模型,它允許模型中存在隨機(jī)性,而GARCH假設(shè)我們對波動率進(jìn)行了完美的建模(如果你對你所分析的序列非常熟悉,這可能是一個好的假設(shè),但實際情況并不總是這樣)。隨機(jī)波動率模型通常是用馬爾科夫鏈蒙特卡洛(MCMC)和準(zhǔn)蒙特卡洛方法來估計的,如果你學(xué)過隨機(jī)過程的相關(guān)內(nèi)容,你會知道這是什么。
參考文獻(xiàn)
Tsay, R. (2010).?Analysis of Financial Time Series. (3rd ed., Wiley Series in Probability and Statistics).
Brockwell, P., & Davis, Richard A. (2016).?Introduction to time series and forecasting?(3rd ed., Springer texts in statistics). New York: Springer.
Racine, Jeffrey S. (2019)?Reproducible Econometrics Using R?(Oxford)
最受歡迎的見解
1.HAR-RV-J與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)混合模型預(yù)測和交易大型股票指數(shù)的高頻波動率
2.R語言中基于混合數(shù)據(jù)抽樣(MIDAS)回歸的HAR-RV模型預(yù)測GDP增長
3.波動率的實現(xiàn):ARCH模型與HAR-RV模型
4.R語言ARMA-EGARCH模型、集成預(yù)測算法對SPX實際波動率進(jìn)行預(yù)測
5.GARCH(1,1),MA以及歷史模擬法的VaR比較
6.R語言多元COPULA GARCH 模型時間序列預(yù)測
7.R語言基于ARMA-GARCH過程的VAR擬合和預(yù)測
8.matlab預(yù)測ARMA-GARCH 條件均值和方差模型
9.R語言對S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略