garch模型python步骤_GARCH模型的建模步骤?
瀉藥,我將建立道瓊斯工業平均指數(DJIA)日交易量對數比的ARMA-GARCH模型來演示建模步驟。
原文鏈接:R語言: GARCH模型股票交易量的研究道瓊斯股票市場指數?tecdat.cn
獲取數據
load(file='DowEnvironment.RData')
日交易量
每日交易量內發生的 變化。
plot(dj_vol)
首先,我們驗證具有常數均值的線性回歸在統計上是顯著的。
在休息時間= 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"))
每日交易量對數比率模型
每日交易量對數比率:plot(dj_vol_log_ratio)
異常值檢測
下面我們將原始時間序列與調整后的異常值進行比較。
相關圖
pacf(dj_vol_log_ratio)
上圖可能表明 ARMA(p,q)模型的p和q> 0.
單位根測試
我們 提供Augmented Dickey-Fuller測試。
根據 測試統計數據與臨界值進行比較,我們拒絕單位根存在的零假設。
ARMA模型
我們現在確定時間序列的ARMA結構,以便對結果殘差運行ARCH效果測試。
ma1系數在統計上不顯著。因此,我們嘗試使用以下ARMA(2,3)模型。
所有系數都具有統計顯著性,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,并且所有系數具有統計顯著性。
我們還可以嘗試 進一步驗證。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)}之內,代表潛在的集合( p,q)根據eacf()函數輸出的值。
我們已經在集合{(3,2)(2,3)(1,2)}內驗證了具有(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系數在統計上不顯著。##
## 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系數在統計上不顯著。
ARCH效果測試
如果ARCH效應對于我們的時間序列的殘差具有統計顯著性,則需要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
根據報告的p值,我們拒絕無ARCH效應的零假設。
讓我們看一下殘差相關圖。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
根據報告的p值,我們拒絕無ARCH效應的零假設。
讓我們看一下殘差相關圖。par(mfrow=c(1,2))
acf(resid_dj_vol_log_ratio)
pacf(resid_dj_vol_log_ratio)
要檢查 對數比率內的不對稱性,將顯示匯總統計數據和密度圖。## 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))
因此,對于每日交易量對數比,還將提出eGARCH模型。
為了將結果與兩個候選平均模型ARMA(1,2)和ARMA(2,3)進行比較,我們進行了兩次擬合
ARMA-GARCH:ARMA(1,2)+ eGARCH(1,1)
所有系數都具有統計顯著性。然而,基于上面報道的標準化殘差p值的加權Ljung-Box檢驗,我們拒絕了對于本模型沒有殘差相關性的零假設。
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
所有系數都具有統計顯著性。沒有找到標準化殘差或標準化平方殘差的相關性。模型可以正確捕獲所有ARCH效果。調整后的Pearson擬合優度檢驗不拒絕零假設,即標準化殘差的經驗分布和所選擇的理論分布是相同的。然而:
*對于其中一些模型參數隨時間變化恒定的Nyblom穩定性測試零假設被拒絕
par(mfrow=c(2,2))
plot(garchfit, which=8)
plot(garchfit, which=9)
plot(garchfit, which=10)
plot(garchfit, which=11)
我們用平均模型擬合(紅線)和條件波動率(藍線)顯示原始道瓊斯日均交易量對數時間序列。
對數波動率分析
以下是我們的模型ARMA(2,2)+ eGARCH(1,1)產生的條件波動率圖。
plot(cond_volatility)
顯示了按年度的條件波動率的線圖。par(mfrow=c(6,2))
pl
pl
顯示了按年度計算的條件波動率框圖。
結論
我們研究了基本統計指標,如平均值,偏差,偏度和峰度,以了解多年來價值觀的差異,以及價值分布對稱性和尾部。從這些摘要開始,我們獲得了平均值,中位數,偏度和峰度指標的有序列表,以更好地突出多年來的差異。
密度圖可以了解我們的經驗樣本分布的不對稱性和尾部性。
對于對數回報,我們構建了ARMA-GARCH模型(指數GARCH,特別是作為方差模型),以獲得條件波動率。同樣,可視化作為線和框圖突出顯示了年內和年之間的條件波動率變化。這種調查的動機是,波動率是變化幅度的指標,用簡單的詞匯表示,并且是應用于資產的對數收益時的基本風險度量。有幾種類型的波動性(有條件的,隱含的,實現的波動率)。
交易量可以被解釋為衡量市場活動幅度和投資者興趣的指標。計算交易量指標(包括波動率)可以了解這種活動/利息水平如何隨時間變化。
非常感謝您閱讀本文,有任何問題請在下面留言!
最受歡迎的見解
總結
以上是生活随笔為你收集整理的garch模型python步骤_GARCH模型的建模步骤?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: argb可以和rgb同步吗_神光同步酷炫
- 下一篇: python两个时间内的工作日_如何在P