R語言代寫: GARCH模型股票交易量的研究道瓊斯股票市場指數


原文鏈接:http://tecdat.cn/?p=6632

 

我將建立道瓊斯工業平均指數(DJIA)日交易量對數比的ARMA-GARCH模型。 

獲取數據

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 <- lapply(2007:2018, function(x) { plot(cond_volatility[as.character(x)], main = "DJIA Daily Volume Log-ratio conditional volatility")})
pl

 

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

 

結論

我們研究了基本統計指標,如平均值,偏差,偏度和峰度,以了解多年來價值觀的差異,以及價值分布對稱性和尾部。從這些摘要開始,我們獲得了平均值,中位數,偏度和峰度指標的有序列表,以更好地突出多年來的差異。

密度圖可以了解我們的經驗樣本分布的不對稱性和尾部性。

對於對數回報,我們構建了ARMA-GARCH模型(指數GARCH,特別是作為方差模型),以獲得條件波動率。同樣,可視化作為線和框圖突出顯示了年內和年之間的條件波動率變化。這種調查的動機是,波動率是變化幅度的指標,用簡單的詞匯表示,並且是應用於資產的對數收益時的基本風險度量。有幾種類型的波動性(有條件的,隱含的,實現的波動率)。

交易量可以被解釋為衡量市場活動幅度和投資者興趣的指標。計算交易量指標(包括波動率)可以了解這種活動/利息水平如何隨時間變化。

 

非常感謝您閱讀本文,有任何問題請在下面留言!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM