R语言: GARCH模型股票交易量的研究道琼斯股票市场指数

简介: R语言: GARCH模型股票交易量的研究道琼斯股票市场指数

我将建立道琼斯工业平均指数(DJIA)日交易量对数比的ARMA-GARCH模型。


获取数据

lod(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

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

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

 

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

相关文章
|
6月前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
6月前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
2月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
3月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
6月前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
6月前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
20天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
40 3
|
6月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
6月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为