R語言: GARCH模型股票交易量的研究道瓊斯股票市場指數(shù)|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=6632
原文出處:拓端數(shù)據(jù)部落公眾號
?最近我們被客戶要求撰寫關(guān)于GARCH的研究報告,包括一些圖形和統(tǒng)計輸出。
我將建立道瓊斯工業(yè)平均指數(shù)(DJIA)日交易量對數(shù)比的ARMA-GARCH模型。?``
獲取數(shù)據(jù)
load(file='DowEnvironment.RData')
日交易量
?每日交易量內(nèi)發(fā)生的 變化。?
plot(dj_vol)
html
?

?首先,我們驗證具有常數(shù)均值的線性回歸在統(tǒng)計上是顯著的。``
?

?
在休息時間= 6時達到最小BIC。
以下是道瓊斯日均交易量與水平變化(紅線) 。
summary(bp_dj_vol)
## ## ? Optimal (m+1)-segment partition: ## ## Call:## breakpoints.formula(formula = dj_vol ~ 1, h = 0.1)## ## Breakpoints at observation number:## ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ## m = 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2499## m = 2 ? ? ? ? ? 896 ? ? ? ? ? ? ? ? ? ? 2499## m = 3 ? ? ? 626 ? ? 1254 ? ? ? ? ? ? ? ?2499## m = 4 ? 342 644 ? ? 1254 ? ? ? ? ? ? ? ?2499## m = 5 ? 342 644 ? ? 1219 1649 ? ? ? ? ? 2499## m = 6 ? 320 622 924 1251 1649 ? ? ? ? ? 2499## m = 7 ? 320 622 924 1251 1692 ? ? ?2172 2499## m = 8 ? 320 622 924 1251 1561 1863 2172 2499## ## Corresponding to breakdates:## ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?## m = 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?## m = 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0.296688741721854## m = 3 ? ? ? ? ? ? ? ? ? ? 0.207284768211921 ? ? ? ? ? ? ? ? ?## m = 4 ? 0.113245033112583 0.213245033112583 ? ? ? ? ? ? ? ? ?## m = 5 ? 0.113245033112583 0.213245033112583 ? ? ? ? ? ? ? ? ?## m = 6 ? 0.105960264900662 0.205960264900662 0.305960264900662## m = 7 ? 0.105960264900662 0.205960264900662 0.305960264900662## m = 8 ? 0.105960264900662 0.205960264900662 0.305960264900662## ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?## m = 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?## m = 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?## m = 3 ? 0.41523178807947 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ## m = 4 ? 0.41523178807947 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ## m = 5 ? 0.40364238410596 ?0.546026490066225 ? ? ? ? ? ? ? ? ?## m = 6 ? 0.414238410596027 0.546026490066225 ? ? ? ? ? ? ? ? ?## m = 7 ? 0.414238410596027 0.560264900662252 ? ? ? ? ? ? ? ? ?## m = 8 ? 0.414238410596027 0.516887417218543 0.616887417218543## ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?## m = 1 ? ? ? ? ? ? ? ? ? ? 0.827483443708609## m = 2 ? ? ? ? ? ? ? ? ? ? 0.827483443708609## m = 3 ? ? ? ? ? ? ? ? ? ? 0.827483443708609## m = 4 ? ? ? ? ? ? ? ? ? ? 0.827483443708609## m = 5 ? ? ? ? ? ? ? ? ? ? 0.827483443708609## m = 6 ? ? ? ? ? ? ? ? ? ? 0.827483443708609## m = 7 ? 0.719205298013245 0.827483443708609## m = 8 ? 0.719205298013245 0.827483443708609## ## Fit:## ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?## m ? 0 ? ? ? ? 1 ? ? ? ? 2 ? ? ? ? 3 ? ? ? ? 4 ? ? ? ? 5 ? ? ? ? 6 ? ? ? ?## RSS 3.872e+19 2.772e+19 1.740e+19 1.547e+19 1.515e+19 1.490e+19 1.475e+19## BIC 1.206e+05 1.196e+05 1.182e+05 1.179e+05 1.178e+05 1.178e+05 1.178e+05## ? ? ? ? ? ? ? ? ? ? ? ?## m ? 7 ? ? ? ? 8 ? ? ? ?## RSS 1.472e+19 1.478e+19## BIC 1.178e+05 1.178e+05
lwd = c(3,1), col = c("red", "black"))

?
?每日交易量對數(shù)比率模型
?每日交易量對數(shù)比率:
plot(dj_vol_log_ratio)

?
異常值檢測
?下面我們將原始時間序列與調(diào)整后的異常值進行比較。

?
?
相關(guān)圖
?

?
pacf(dj_vol_log_ratio)

?
上圖可能表明 ARMA(p,q)模型的p和q> 0.?
單位根測試
我們 提供Augmented Dickey-Fuller測試。?
根據(jù) 測試統(tǒng)計數(shù)據(jù)與臨界值進行比較,我們拒絕單位根存在的零假設(shè)。?
ARMA模型
我們現(xiàn)在確定時間序列的ARMA結(jié)構(gòu),以便對結(jié)果殘差運行ARCH效果測試。?
?
ma1系數(shù)在統(tǒng)計上不顯著。因此,我們嘗試使用以下ARMA(2,3)模型。
所有系數(shù)都具有統(tǒng)計顯著性,AIC低于第一個模型。然后我們嘗試使用ARMA(1,2)。
## ## Call:## arima(x = dj_vol_log_ratio, order = c(1, 0, 2), include.mean = FALSE)## ## Coefficients:## ? ? ? ? ?ar1 ? ? ?ma1 ? ? ma2## ? ? ? 0.6956 ?-1.3183 ?0.3550## s.e. ?0.0439 ? 0.0518 ?0.0453## ## sigma^2 estimated as 0.06598: ?log likelihood = -180.92, ?aic = 367.84## z test of coefficients:## ## ? ? ?Estimate Std. Error ?z value ?Pr(>|z|) ? ?## ar1 ?0.695565 ? 0.043874 ?15.8537 < 2.2e-16 ***## ma1 -1.318284 ? 0.051787 -25.4557 < 2.2e-16 ***## ma2 ?0.355015 ? 0.045277 ? 7.8409 4.474e-15 ***## ---## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
該模型在集合中具有最高的AIC,并且所有系數(shù)具有統(tǒng)計顯著性。
我們還可以嘗試 進一步驗證。
eacf(dj_vol_log_ratio)## AR / MA## 0 1 2 3 4 5 6 7 8 9 10 11 12 13## 0 xooxxooxooxooo ## 1 xxoxoooxooxooo ## 2 xxxxooooooxooo ## 3 xxxxooooooxooo ## 4 xxxxxoooooxooo ## 5 xxxxoooooooooo ## 6 xxxxxoxooooooo ## 7 xxxxxooooooooo
以“O”為頂點的左上角三角形似乎位于{(1,2),(2,2),(1,3),(2,3)}之內(nèi),代表潛在的集合( p,q)根據(jù)eacf()函數(shù)輸出的值。?
我們已經(jīng)在集合{(3,2)(2,3)(1,2)}內(nèi)驗證了具有(p,q)階的ARMA模型。讓我們試試{(2,2)(1,3)}
## ## Call:## arima(x = dj_vol_log_ratio, order = c(2, 0, 2), include.mean = FALSE)## ## Coefficients:## ? ? ? ? ?ar1 ? ? ?ar2 ? ? ?ma1 ? ? ma2## ? ? ? 0.7174 ?-0.0096 ?-1.3395 ?0.3746## s.e. ?0.1374 ? 0.0560 ? 0.1361 ?0.1247## ## sigma^2 estimated as 0.06598: ?log likelihood = -180.9, ?aic = 369.8## z test of coefficients:## ## ? ? ? Estimate Std. Error z value ?Pr(>|z|) ? ?## ar1 ?0.7173631 ?0.1374135 ?5.2205 1.785e-07 ***## ar2 -0.0096263 ?0.0560077 -0.1719 ?0.863536 ? ?## ma1 -1.3394720 ?0.1361208 -9.8403 < 2.2e-16 ***## ma2 ?0.3746317 ?0.1247117 ?3.0040 ?0.002665 ** ## ---## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ar2系數(shù)在統(tǒng)計上不顯著。
## ## Call:## arima(x = dj_vol_log_ratio, order = c(1, 0, 3), include.mean = FALSE)## ## Coefficients:## ? ? ? ? ?ar1 ? ? ?ma1 ? ? ma2 ? ? ma3## ? ? ? 0.7031 ?-1.3253 ?0.3563 ?0.0047## s.e. ?0.0657 ? 0.0684 ?0.0458 ?0.0281## ## sigma^2 estimated as 0.06598: ?log likelihood = -180.9, ?aic = 369.8## z test of coefficients:## ## ? ? ? Estimate Std. Error ?z value ?Pr(>|z|) ? ?## ar1 ?0.7030934 ?0.0656902 ?10.7032 < 2.2e-16 ***## ma1 -1.3253176 ?0.0683526 -19.3894 < 2.2e-16 ***## ma2 ?0.3563425 ?0.0458436 ? 7.7730 7.664e-15 ***## ma3 ?0.0047019 ?0.0280798 ? 0.1674 ? ? 0.867 ? ?## ---## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ma3系數(shù)在統(tǒng)計上不顯著。
?
ARCH效果測試
如果ARCH效應(yīng)對于我們的時間序列的殘差具有統(tǒng)計顯著性,則需要GARCH模型。
我們測試候選平均模型ARMA(2,3)。
## ?ARCH LM-test; Null hypothesis: no ARCH effects## ## data: ?resid_dj_vol_log_ratio - mean(resid_dj_vol_log_ratio)## Chi-squared = 78.359, df = 12, p-value = 8.476e-12
根據(jù)報告的p值,我們拒絕無ARCH效應(yīng)的零假設(shè)。
讓我們看一下殘差相關(guān)圖。
par(mfrow=c(1,2))acf(resid_dj_vol_log_ratio)pacf(resid_dj_vol_log_ratio)

?
我們測試了第二個候選平均模型ARMA(1,2)。
## ?ARCH LM-test; Null hypothesis: no ARCH effects## ## data: ?resid_dj_vol_log_ratio - mean(resid_dj_vol_log_ratio)## Chi-squared = 74.768, df = 12, p-value = 4.065e-11
根據(jù)報告的p值,我們拒絕無ARCH效應(yīng)的零假設(shè)。
讓我們看一下殘差相關(guān)圖。
par(mfrow=c(1,2))acf(resid_dj_vol_log_ratio)pacf(resid_dj_vol_log_ratio)

?
要檢查 對數(shù)比率內(nèi)的不對稱性,將顯示匯總統(tǒng)計數(shù)據(jù)和密度圖。
## ? ? ? ? ? ? ?DJI.Volume## nobs ? ? ? ?3019.000000## NAs ? ? ? ? ? ?0.000000## Minimum ? ? ? -2.301514## Maximum ? ? ? ?2.441882## 1. Quartile ? -0.137674## 3. Quartile ? ?0.136788## Mean ? ? ? ? ?-0.000041## Median ? ? ? ?-0.004158## Sum ? ? ? ? ? -0.124733## SE Mean ? ? ? ?0.005530## LCL Mean ? ? ?-0.010885## UCL Mean ? ? ? 0.010802## Variance ? ? ? 0.092337## Stdev ? ? ? ? ?0.303869## Skewness ? ? ?-0.182683## Kurtosis ? ? ? 9.463384
plot(density(dj_vol_log_ratio))

?
因此,對于每日交易量對數(shù)比,還將提出eGARCH模型。
為了將結(jié)果與兩個候選平均模型ARMA(1,2)和ARMA(2,3)進行比較,我們進行了兩次擬合
ARMA-GARCH:ARMA(1,2)+ eGARCH(1,1)
所有系數(shù)都具有統(tǒng)計顯著性。然而,基于上面報道的標(biāo)準(zhǔn)化殘差p值的加權(quán)Ljung-Box檢驗,我們拒絕了對于本模型沒有殘差相關(guān)性的零假設(shè)。?
ARMA-GARCH:ARMA(2,3)+ eGARCH(1,1)
## ## *---------------------------------*## * ? ? ? ? ?GARCH Model Fit ? ? ? ?*## *---------------------------------*## ## Conditional Variance Dynamics ? ?## -----------------------------------## GARCH Model ?: eGARCH(1,1)## Mean Model ? : ARFIMA(2,0,3)## Distribution : sstd ## ## Optimal Parameters## ------------------------------------## ? ? ? ? Estimate ?Std. Error ? t value Pr(>|t|)## ar1 ? ? -0.18607 ? ?0.008580 ?-21.6873 ?0.0e+00## ar2 ? ? ?0.59559 ? ?0.004596 ?129.5884 ?0.0e+00## ma1 ? ? -0.35619 ? ?0.013512 ?-26.3608 ?0.0e+00## ma2 ? ? -0.83010 ? ?0.004689 -177.0331 ?0.0e+00## ma3 ? ? ?0.26277 ? ?0.007285 ? 36.0678 ?0.0e+00## omega ? -1.92262 ? ?0.226738 ? -8.4795 ?0.0e+00## alpha1 ? 0.14382 ? ?0.033920 ? ?4.2401 ?2.2e-05## beta1 ? ?0.31060 ? ?0.079441 ? ?3.9098 ?9.2e-05## gamma1 ? 0.43137 ? ?0.043016 ? 10.0281 ?0.0e+00## skew ? ? 1.32282 ? ?0.031382 ? 42.1523 ?0.0e+00## shape ? ?3.48939 ? ?0.220787 ? 15.8043 ?0.0e+00## ## Robust Standard Errors:## ? ? ? ? Estimate ?Std. Error ? t value Pr(>|t|)## ar1 ? ? -0.18607 ? ?0.023940 ? -7.7724 0.000000## ar2 ? ? ?0.59559 ? ?0.022231 ? 26.7906 0.000000## ma1 ? ? -0.35619 ? ?0.024244 ?-14.6918 0.000000## ma2 ? ? -0.83010 ? ?0.004831 -171.8373 0.000000## ma3 ? ? ?0.26277 ? ?0.030750 ? ?8.5453 0.000000## omega ? -1.92262 ? ?0.266462 ? -7.2154 0.000000## alpha1 ? 0.14382 ? ?0.032511 ? ?4.4239 0.000010## beta1 ? ?0.31060 ? ?0.095329 ? ?3.2582 0.001121## gamma1 ? 0.43137 ? ?0.047092 ? ?9.1602 0.000000## skew ? ? 1.32282 ? ?0.037663 ? 35.1225 0.000000## shape ? ?3.48939 ? ?0.223470 ? 15.6146 0.000000## ## LogLikelihood : 356.4994 ## ## Information Criteria## ------------------------------------## ? ? ? ? ? ? ? ? ? ? ?## Akaike ? ? ? -0.22888## Bayes ? ? ? ?-0.20698## Shibata ? ? ?-0.22891## Hannan-Quinn -0.22101## ## Weighted Ljung-Box Test on Standardized Residuals## ------------------------------------## ? ? ? ? ? ? ? ? ? ? ? ? ?statistic p-value## Lag[1] ? ? ? ? ? ? ? ? ? ? ?0.7678 0.38091## Lag[2*(p+q)+(p+q)-1][14] ? ?7.7336 0.33963## Lag[4*(p+q)+(p+q)-1][24] ? 17.1601 0.04972## d.o.f=5## H0 : No serial correlation## ## Weighted Ljung-Box Test on Standardized Squared Residuals## ------------------------------------## ? ? ? ? ? ? ? ? ? ? ? ? statistic p-value## Lag[1] ? ? ? ? ? ? ? ? ? ? ?0.526 ?0.4683## Lag[2*(p+q)+(p+q)-1][5] ? ? 1.677 ?0.6965## Lag[4*(p+q)+(p+q)-1][9] ? ? 2.954 ?0.7666## d.o.f=2## ## Weighted ARCH LM Tests## ------------------------------------## ? ? ? ? ? ? Statistic Shape Scale P-Value## ARCH Lag[3] ? ? 1.095 0.500 2.000 ?0.2955## ARCH Lag[5] ? ? 1.281 1.440 1.667 ?0.6519## ARCH Lag[7] ? ? 1.940 2.315 1.543 ?0.7301## ## Nyblom stability test## ------------------------------------## Joint Statistic: ?5.3764## Individual Statistics: ? ? ? ? ? ? ?## ar1 ? ?0.12923## ar2 ? ?0.20878## ma1 ? ?1.15005## ma2 ? ?1.15356## ma3 ? ?0.97487## omega ?2.04688## alpha1 0.09695## beta1 ?2.01026## gamma1 0.18039## skew ? 0.38131## shape ?2.40996## ## Asymptotic Critical Values (10% 5% 1%)## Joint Statistic: ? ? ? ? ?2.49 2.75 3.27## Individual Statistic: ? ? 0.35 0.47 0.75## ## Sign Bias Test## ------------------------------------## ? ? ? ? ? ? ? ? ? ?t-value ? ?prob sig## Sign Bias ? ? ? ? ? 1.4929 0.13556 ? ?## Negative Sign Bias ?0.6317 0.52766 ? ?## Positive Sign Bias ?2.4505 0.01432 ?**## Joint Effect ? ? ? ?6.4063 0.09343 ? *## ## ## Adjusted Pearson Goodness-of-Fit Test:## ------------------------------------## ? group statistic p-value(g-1)## 1 ? ?20 ? ? 17.92 ? ? ? 0.5278## 2 ? ?30 ? ? 33.99 ? ? ? 0.2395## 3 ? ?40 ? ? 44.92 ? ? ? 0.2378## 4 ? ?50 ? ? 50.28 ? ? ? 0.4226## ## ## Elapsed time : 1.660402
?``
所有系數(shù)都具有統(tǒng)計顯著性。沒有找到標(biāo)準(zhǔn)化殘差或標(biāo)準(zhǔn)化平方殘差的相關(guān)性。模型可以正確捕獲所有ARCH效果。調(diào)整后的Pearson擬合優(yōu)度檢驗不拒絕零假設(shè),即標(biāo)準(zhǔn)化殘差的經(jīng)驗分布和所選擇的理論分布是相同的。然而:
*對于其中一些模型參數(shù)隨時間變化恒定的Nyblom穩(wěn)定性測試零假設(shè)被拒絕
?

par(mfrow=c(2,2))plot(garchfit, which=8)plot(garchfit, which=9)plot(garchfit, which=10)plot(garchfit, which=11)
?
我們用平均模型擬合(紅線)和條件波動率(藍線)顯示原始道瓊斯日均交易量對數(shù)時間序列。
對數(shù)波動率分析
以下是我們的模型ARMA(2,2)+ eGARCH(1,1)產(chǎn)生的條件波動率圖。
plot(cond_volatility)顯示了按年度的條件波動率的線圖。
par(mfrow=c(6,2))pl <- lapply(2007:2018, function(x) { plot(cond_volatility[as.character(x)], main = "DJIA Daily Volume Log-ratio conditional volatility")})pl
?

顯示了按年度計算的條件波動率框圖。

結(jié)論
我們研究了基本統(tǒng)計指標(biāo),如平均值,偏差,偏度和峰度,以了解多年來價值觀的差異,以及價值分布對稱性和尾部。從這些摘要開始,我們獲得了平均值,中位數(shù),偏度和峰度指標(biāo)的有序列表,以更好地突出多年來的差異。
密度圖可以了解我們的經(jīng)驗樣本分布的不對稱性和尾部性。
對于對數(shù)回報,我們構(gòu)建了ARMA-GARCH模型(指數(shù)GARCH,特別是作為方差模型),以獲得條件波動率。同樣,可視化作為線和框圖突出顯示了年內(nèi)和年之間的條件波動率變化。這種調(diào)查的動機是,波動率是變化幅度的指標(biāo),用簡單的詞匯表示,并且是應(yīng)用于資產(chǎn)的對數(shù)收益時的基本風(fēng)險度量。有幾種類型的波動性(有條件的,隱含的,實現(xiàn)的波動率)。
交易量可以被解釋為衡量市場活動幅度和投資者興趣的指標(biāo)。計算交易量指標(biāo)(包括波動率)可以了解這種活動/利息水平如何隨時間變化。
?
非常感謝您閱讀本文,有任何問題請在下面留言!

最受歡迎的見解
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實際波動率進行預(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ù)進行ARIMA + GARCH交易策略
?