原文链接:

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

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

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

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

arma模型_R语言: GARCH模型股票交易量的研究道琼斯股票市场指数相关推荐

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

    我将建立道琼斯工业平均指数(DJIA)日交易量对数比的ARMA-GARCH模型. 获取数据 load(file='') 日交易量  每日交易量内发生的 变化. plot(dj_vol) 首先,我们验证 ...

  2. 【项目实战】Python基于波动率模型(ARCH和GARCH)进行股票数据分析项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 在衍生产品定价和风险管理中,对当前波动率是很感兴趣的,这是因为需 ...

  3. r语言清除变量_R语言:结构方程模型、潜变量分析

    原文链接: R语言:结构方程模型.潜变量分析​tecdat.cn 结构方程模型入门 介绍 对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以 ...

  4. python——金融商品收益率GARCH 模型构建(GARCH 模型)

    一.GARCH简介 GARCH模型是Bollerslev在1986年提出来的,全称为广义自回归条件异方差模型,Generalized Autoregressive Conditionally Hete ...

  5. arma模型_R语言与计量经济学(七)ARMA模型

    前面说了AR模型和MA模型,ARMA就是结合一下,既有自回归又有移动平均 就是这样形式哈!懒得打公式... 同样还是举个栗子 ! #ARMA自回归移动平均模型 mod<-arima.sim(mo ...

  6. r语言svr模型_R建立SVR模型,并用遗传算法优化

    刚刚尝试在建立了SVR模型之后,再用遗传算法优化SVR的cost和gamma参数,给大家分享下,有错误的欢迎指正~ rm(list = ls()) # load package library(str ...

  7. python garch模型 forecast_python - 使用GARCH模型进行滚动预测 - 堆栈内存溢出

    我正在尝试对给定股票未来30天的波动性进行滚动预测(即预测时间t + 1,然后在预测t + 2时使用此预测,依此类推...) 我这样做是使用R的rugarch软件包,该软件包是我使用rpy2软件包在P ...

  8. 6s模型c语言,6S模型.doc

    6S模型 6S模型 大气辐射传输模型6S简介 1986年,法国Université des Sciences et Technologies de Lille(里尔科技大学)大气光学实验室Tanré等 ...

  9. R语言用Garch模型和回归模型对股票价格分析

    原文链接:http://tecdat.cn/?p=18310 为了找出影响价格波动的主要因素,我们使用逐步回归法来剔除一些对于应变量即价格影响很小的自变量剔除出我们的模型(点击文末"阅读原文 ...

最新文章

  1. 《UML面向对象设计基础》—第1章1.2节信息/实现隐藏
  2. Python 2.7 学习笔记
  3. 按次计费接口的简单实现思路
  4. MVCC在MySQL的InnoDB中的实现
  5. 科目移动类型替代规则总结
  6. 从open系统调用的源码看文件的打开过程
  7. 微信公众号自动回复加超链接最新可用实现方案
  8. include.cpp(main函数的cpp文件)文件中包含另一个.cpp文件的错误及原因
  9. 超美响应式自适应引导页带音乐播放器源码
  10. MSYS2+MinGW32 编译 QEMU需做的准备工作
  11. 【顶会论文解析】罪行预测
  12. 【hiho一下 第147周】小Hi的烦恼
  13. Docker部署Ghost
  14. Python——jieba优秀的中文分词库(基础知识+实例)
  15. zedgraph显示最小刻度_关于ZedGraph几个难点
  16. 数学建模之图论最短路径问题
  17. 关系型数据库之MySQL8——由内而外的深化全面学习
  18. animation动画不生效_css animation不动怎么办
  19. 我的小程序之个人所得税计算器
  20. Android技术知识点:如何向 TextView 添加字体

热门文章

  1. 首个富士康商贸综合体落子乐山
  2. 2015阿里校园招聘测试开发面试经验(广州站)
  3. 服务器里面增加单页网站,单页网站:搜索引擎的最爱
  4. mysql字符串截取函数应用介绍
  5. 什么是ros,为什么使用ros
  6. 马尔萨斯模型的分析和应用
  7. Unity中PICO G2 4K开发环境配置说明
  8. [航海协会]无损加密
  9. 企业级BYOD实践与挑战:如何改善BYOD策略
  10. vue 中使用 cesium