拓端tecdat|R語言時(shí)間序列GARCH模型分析股市波動(dòng)率
原文鏈接:http://tecdat.cn/?p=22360?
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
在這篇文章中,我們將學(xué)習(xí)一種在價(jià)格序列中建立波動(dòng)性模型的標(biāo)準(zhǔn)方法,即廣義自回歸條件異方差(GARCH)模型。
價(jià)格波動(dòng)的 GARCH 模型的思想是利用誤差結(jié)構(gòu)的近期實(shí)現(xiàn)來預(yù)測(cè)誤差結(jié)構(gòu)的未來實(shí)現(xiàn)。更簡(jiǎn)單地說,我們經(jīng)??吹皆诟卟▌?dòng)性或低波動(dòng)性時(shí)期的聚類,因此我們可以利用近期的波動(dòng)性來預(yù)測(cè)近期未來的波動(dòng)性。
我們將使用SPY價(jià)格來說明波動(dòng)率的模型。下面的圖顯示了SPY收益率。
colnames(SPYRet) <- c('SPY')
SPYRet ? ? ? ? ? <- tidy(SPYRet)
ggplot(SPYRet) +
geom_line() +
labs(title = "SPY收益率"
這篇文章的首要目標(biāo)是對(duì)價(jià)格收益序列的變化的平均值和方差進(jìn)行建模。
接下來,我們將通過兩種常用的方式來顯示收益率的變化方差。這些是繪制價(jià)格收益的絕對(duì)值。
或價(jià)格收益的平方
這兩種情況都是有意義的,因?yàn)榉讲羁偸且粋€(gè)正數(shù),并且受到偏離平均值的影響。當(dāng)然這是在我們知道收益序列的平均值為0的情況下。
在價(jià)格數(shù)據(jù)中,百分比回報(bào)率的平均值幾乎都非常接近于0。 如果平均回報(bào)率非零,那么我們可以直接繪制
add_column( value^2, ?abs(value))
ggplot(SPYRet) +
geom_line() +
labs(title = "SPY絕對(duì)收益值"
ggplot(Ret, aes(y = SquaredReturns) +
geom_line() +
labs(title = "SPY平方收益率"
波動(dòng)率的GARCH模型
普通的(GARCH模型有很多變體)GARCH模型如下。
第一行是為均值建模的方程。這里沒有ARMA效應(yīng),但如果你發(fā)現(xiàn)它們很重要,可以很容易地把它們放進(jìn)去。只有一個(gè)截距和一個(gè)誤差項(xiàng)。接下來的三行將更多的結(jié)構(gòu)放在誤差項(xiàng)上,
第二行為什么我們要把兩個(gè)項(xiàng)相乘來得到?t?
要看到這一點(diǎn),重要的是要牢記這里的目標(biāo)。我們正在尋找一個(gè)能給我們帶來rSPYt變化方差的模型
因此,如果基本收益模型是
接下來的步驟依賴于隨機(jī)變量方差的屬性。具體來說,如果
因此,如果我們得到一個(gè)εt的模型
考慮GARCH模型中的第二行。
請(qǐng)注意?σtσ2?2
最后一行是由于
估計(jì)GARCH模型
下面的代碼使用rugarch R包來估計(jì)GARCH(p = 1, q = 1)模型。請(qǐng)注意,p和q表示σ2t?2t的滯后數(shù)。
第一條命令要求它用model = "sGARCH "指定一個(gè)普通的GARCH。它要求它使用ARMA(1, 1)作為收益模型,即armaOrder = c(1, 1), include.mean = TRUE。我們要求它使用N(0,1),distribution.model="norm",模型輸出顯示在 "最優(yōu)參數(shù) "下。mu、ar1和ma1系數(shù)來自均值模型(ARMA(1,1)),omega、alpha1和beta1是來自?
garchspec(variance.m = list(model = "sGARCH", mean.m= list(armaOrder = c(1, 1)
dist = "norm")
garchfit
現(xiàn)在讓我們用這個(gè)估計(jì)的模型來產(chǎn)生滾動(dòng)預(yù)測(cè),即
forecast(spec, n.ahead = 1, n.roll = 2499, out = 2500)
plot(forecast)
可以看到,這個(gè)模型很好的預(yù)測(cè)了波動(dòng)率峰值將保持多長(zhǎng)時(shí)間,或者說是模擬了波動(dòng)率峰值回落到長(zhǎng)期平均水平的路徑。由于所有的計(jì)量經(jīng)濟(jì)學(xué)模型都是用過去的數(shù)值來預(yù)測(cè)當(dāng)前的數(shù)值,所以它無法預(yù)見波動(dòng)率最初上升的情況。
最受歡迎的見解
1.HAR-RV-J與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)混合模型預(yù)測(cè)和交易大型股票指數(shù)的高頻波動(dòng)率
2.R語言中基于混合數(shù)據(jù)抽樣(MIDAS)回歸的HAR-RV模型預(yù)測(cè)GDP增長(zhǎng)
3.波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型
4.R語言ARMA-EGARCH模型、集成預(yù)測(cè)算法對(duì)SPX實(shí)際波動(dòng)率進(jìn)行預(yù)測(cè)
5.GARCH(1,1),MA以及歷史模擬法的VaR比較
6.R語言多元COPULA GARCH 模型時(shí)間序列預(yù)測(cè)
7.R語言基于ARMA-GARCH過程的VAR擬合和預(yù)測(cè)
8.matlab預(yù)測(cè)ARMA-GARCH 條件均值和方差模型
9.R語言對(duì)S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略