本文比較了幾個時間序列模型,以預測SP500指數的每日實際波動率。基準是SPX日收益序列的ARMA-EGARCH模型。將其與GARCH模型進行比較 。最後,提出了集合預測算法。算法
實際波動率是看不見的,所以咱們只能對其進行估算。這也是波動率建模的難點。若是真實值未知,則很難判斷預測質量。儘管如此,研究人員爲實際波動率開發了估算模型。Andersen,Bollerslev Diebold(2008) 和 Barndorff-Nielsen and Shephard(2007) 以及 Shephard and Sheppard(2009) 提出了一類基於高頻的波動率(HEAVY)模型,做者認爲HEAVY模型給出了 很好的 估計。網絡
假設:HEAVY實現的波動率估算器無偏且有效。框架
在下文中,將HEAVY估計量做爲 觀察到的已實現波動率(實際波動率) 來肯定預測性能。性能
在本文中,我主要關注前兩個。測試
我實現了Shephard和Sheppard的模型,並估計了SPX的實際量。spa
head(SPXdata)
SPX2.rv SPX2.r SPX2.rs SPX2.nobs SPX2.open 2000-01-03 0.000157240 -0.010103618 0.000099500 1554 34191.16 2000-01-04 0.000298147 -0.039292183 0.000254283 1564 34195.04 2000-01-05 0.000307226 0.001749195 0.000138133 1552 34196.70 2000-01-06 0.000136238 0.001062120 0.000062000 1561 34191.43 2000-01-07 0.000092700 0.026022074 0.000024100 1540 34186.14 2000-01-10 0.000117787 0.010537636 0.000033700 1573 34191.50 SPX2.highlow SPX2.highopen SPX2.openprice SPX2.closeprice 2000-01-03 0.02718625 0.005937756 1469.25 1454.48 2000-01-04 0.04052226 0.000000000 1455.22 1399.15 2000-01-05 -0.02550524 0.009848303 1399.42 1401.87 2000-01-06 -0.01418039 0.006958070 1402.11 1403.60 2000-01-07 -0.02806616 0.026126203 1403.45 1440.45 2000-01-10 -0.01575486 0.015754861 1441.47 1456.74 DATE SPX2.rvol 2000-01-03 2000-01-03 0.012539537 2000-01-04 2000-01-04 0.017266934 2000-01-05 2000-01-05 0.017527864 2000-01-06 2000-01-06 0.011672103 2000-01-07 2000-01-07 0.009628084 2000-01-10 2000-01-10 0.010852972
SPXdata$SPX2.rv
是估計的實際方差。 SPXdata$SPX2.r
是每日收益(平倉)。 SPXdata$SPX2.rvol
是估計的實際波動率code
SPXdata$SPX2.rvol
orm
考慮到在條件方差中具備異方差性的每日收益,GARCH模型能夠做爲擬合和預測的基準。遞歸
首先,收益序列是平穩的。ci
Augmented Dickey-Fuller Test data: SPXdata$SPX2.r Dickey-Fuller = -15.869, Lag order = 16, p-value = 0.01 alternative hypothesis: stationary
分佈顯示出尖峯和厚尾。能夠經過t分佈迴歸分佈密度圖來近似 。黑線是內核平滑的密度,綠線是t分佈密度。
acf(SPXdata$SPX2.r) ##自相關係數圖
Box-Ljung test data: SPXdata$SPX2.r X-squared = 26.096, df = 1, p-value = 3.249e-07
自相關圖顯示了每週相關性。Ljung-Box測試確認了序列存在相關性。
Series: SPXdata$SPX2.r ARIMA(2,0,0) with zero mean Coefficients: ar1 ar2 -0.0839 -0.0633 s.e. 0.0154 0.0154 sigma^2 estimated as 0.0001412: log likelihood=12624.97 AIC=-25243.94 AICc=-25243.93 BIC=-25224.92
auro.arima
表示ARIMA(2,0,0)能夠對收益序列中的自相關進行建模,而eGARCH(1,1)在波動率建模中很受歡迎。所以,我選擇具備t分佈的ARMA(2,0)-eGARCH(1,1)做爲基準模型。
*---------------------------------* * GARCH Model Spec * *---------------------------------* Conditional Variance Dynamics ------------------------------------ GARCH Model : eGARCH(1,1) Variance Targeting : FALSE Conditional Mean Dynamics ------------------------------------ Mean Model : ARFIMA(2,0,0) Include Mean : TRUE GARCH-in-Mean : FALSE Conditional Distribution ------------------------------------ Distribution : std Includes Skew : FALSE Includes Shape : TRUE Includes Lambda : FALSE
我用4189個觀測值進行了回測(從2000-01-03到2016-10-06),使用前1000個觀測值訓練模型,而後每次向前滾動預測一個,而後每5個觀測值從新估計模型一次 。下圖顯示 了樣本外 預測和相應的實際波動率。
預測顯示與實現波動率高度相關,超過72%。
cor(egarch_model$roll.pred$realized_vol, egarch_model$roll.pred$egarch.predicted_vol, method = "spearman")
[1] 0.7228007
偏差摘要和繪圖
Min. 1st Qu. Median Mean 3rd Qu. Max. -0.0223800 -0.0027880 -0.0013160 -0.0009501 0.0003131 0.0477600
平均偏差平方(MSE):
[1] 1.351901e-05
realGARCH
該模型由 Hansen,Huang和Shek(2012) (HHS2012)提出,該模型 使用非對稱動力學表示將實際(已實現)波動率測度與潛在 \_真實波動率聯繫\_起來。與標準GARCH模型不一樣,它是收益和實際波動率度量的聯合建模(本文中的HEAVY估計器)。
模型:
*---------------------------------* * GARCH Model Spec * *---------------------------------* Conditional Variance Dynamics ------------------------------------ GARCH Model : realGARCH(2,1) Variance Targeting : FALSE Conditional Mean Dynamics ------------------------------------ Mean Model : ARFIMA(2,0,0) Include Mean : TRUE GARCH-in-Mean : FALSE Conditional Distribution ------------------------------------ Distribution : norm Includes Skew : FALSE Includes Shape : FALSE Includes Lambda : FALSE
滾動預測過程與上述ARMA-EGARCH模型相同。下圖顯示 了樣本外 預測和相應的實際波動率。
預測與實際的相關性超過77%
cor(arfima_egarch_model$roll.pred$realized_vol, arfima_egarch_model$roll.pred$arfima_egarch.predicted_vol, method = "spearman")
[1] 0.7707991
偏差摘要和圖:
Min. 1st Qu. Median Mean 3rd Qu. Max. -1.851e-02 -1.665e-03 -4.912e-04 -1.828e-05 9.482e-04 5.462e-02
均方偏差(MSE):
[1] 1.18308e-05
備註:
如今已經創建了三個預測
egarch_model
rgarch model
arfima_egarch_model
儘管這三個預測顯示出很高的相關性,但預計模型平均值會減小預測方差,從而提升準確性。使用了隨機森林集成。
varImpPlot(rf$model)
隨機森林由500棵樹組成,每棵樹隨機選擇2個預測以擬合實際值。下圖是擬合和實際波動率。
預測與實際波動率的相關性:
[1] 0.840792
偏差圖:
均方偏差:
[1] 1.197388e-05
MSE與實際波動率方差的比率
[1] 0.2983654
涉及已實際量度信息的realGARCH模型和ARFIMA-eGARCH模型優於標準的收益序列ARMA-eGARCH模型。與基準相比,隨機森林集成的MSE減小了17%以上。
從信息源的角度來看,realGARCH模型和ARFIMA-eGARCH模型捕獲了日內高頻數據中的增量信息(經過模型,HEAVY實際波動率估算)
以上方法不包含隱含波動率數據。隱含波動率是根據SPX期權計算得出的。天然的見解是將隱含波動率做爲預測已實現波動率的預測因子。可是,大量研究代表,無模型的隱含波動率VIX是有偏估計量,不如基於過去實際波動率的預測有效。 Torben G. Andersen,Per Frederiksen和Arne D. Staal(2007) 贊成這種觀點。他們的工做代表,將隱含波動率引入時間序列分析框架不會帶來任何明顯的好處。可是,做者指出了隱含波動率中增量信息的可能性,並提出了組合模型。
所以,進一步的發展多是將時間序列預測和隱含波動率(若是存在)的預測信息相結合的集成模型。
最受歡迎的看法
1.HAR-RV-J與遞歸神經網絡(RNN)混合模型預測和交易大型股票指數的高頻波動率
2.R語言中基於混合數據抽樣(MIDAS)迴歸的HAR-RV模型預測GDP增加
4.R語言ARMA-EGARCH模型、集成預測算法對SPX實際波動率進行預測