zoukankan      html  css  js  c++  java
  • 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,特别是作为方差模型),以获得条件波动率。同样,可视化作为线和框图突出显示了年内和年之间的条件波动率变化。这种调查的动机是,波动率是变化幅度的指标,用简单的词汇表示,并且是应用于资产的对数收益时的基本风险度量。有几种类型的波动性(有条件的,隐含的,实现的波动率)。

    交易量可以被解释为衡量市场活动幅度和投资者兴趣的指标。计算交易量指标(包括波动率)可以了解这种活动/利息水平如何随时间变化。

    非常感谢您阅读本文,有任何问题请在下面留言!

  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/tecdat/p/10919466.html
Copyright © 2011-2022 走看看