R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化

简介: R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化

全文链接:http://tecdat.cn/?p=30647


从Engle在1982发表自回归条件异方差(ARCH)模型的论文以来,金融时间序列数据的波动性就倍受关注。同时,近几年又出现了研究股票市场的波动传递性点击文末“阅读原文”获取完整代码数据


多市场的多维广义自回归条件异方差模型及其在不同条件下的扩展与变形,它们不仅包含了单变量的波动特性,而且很好的描述了不同变量间的相互关系。所以,多维GARCH模型为分析金融市场的相互影响提供了有力的工具。

我们围绕多变量GARCH技术进行一些咨询,帮助客户解决独特的业务问题。本文涉及多变量GARCH模型的构建。为此,请考虑以下模型

  • BEKK
  • CCC-GARCH 和 DCC-GARCH
  • GO-GARCH


BEKK


BEKK(1,1)具有以下形式:

下图显示了具有上述参数的模拟序列:

BEKK 模型的调整通常计算成本很高,因为它们需要估计大量参数。在本节中,我们将使用该包来估计上一节中模拟多变量序列的参数。

对于 BEKK 模型(1,1) 的调整,我们使用以下语法

fit.bek.m<-BE(matsim)

估计数由以下公式给出:


CCC-GARCH和DCC-GARCH


c.H1<-eccc.sim(nobs=1000, c.a1, c.A1, c.B1, c.R1, d.f=5, model="diagonal")
#'h'模拟条件方差的矩阵(T × N )
#'eps'是模拟的时间序列与(E)CCC-GARCH过程的矩阵(T × N )
plot.ts(c.H1$eps, main = "Processos simulados")

对于模拟过程,我们将使用相同的包估计参数,函数 .我们有两个模拟序列,然后我们假设它们遵循 CCC-GARCH(1,1) 以下过程

估算结果为:

DCC-GARCH

DCC-GARCH 模型是 CCC-GARCH 情况的推广,也就是说,我们有 R matris 不一定是固定的,也就是说它随时间变化:

模拟示例

为了模拟 DCC-GARCH 过程,我们考虑比较性能。

obs=1000, d.a1, d.A1, d.B1, d.R1, dcc.para=c(d.alpha1,d.beta1), d.f=5, model="diagonal")

点击标题查阅往期内容


MATLAB用GARCH-EVT-Copula极值理论模型VaR预测分析股票投资组合


01

02

03

04

ccgarch


与CCC-GARCH的情况一样,我们将使用以下初始量进行迭代过程

estimation(inia=d.w0,iniA=d.A0,iniB=d.B0,ini.dcc=d.w0,model="diagonal",dvar=d.H1$eps)

结果如下:

rmgarch


拟合模型的结果如下:

DCC-GARCH模型


最初,仅实现 DCC 模型(1,1)。

模拟模型平差的结果如下所示:

CCC-GARCH和DCC-GARCH模型的结论

我们在 CCC-GARCH 和 DCC-GARCH 示例中都看到,该软件包没有对模拟模型的参数提供令人满意的估计值。


GO-GARCH


在GO-GARCH模型中,我们对构建协方差矩阵的正交分解感兴趣

模拟

给出的矩阵M由下式给出:

我们将得到:

gog.rt<-t(M%*%t(bt))

gogarch


rmgarch


让我们首先指定流程参数:rmgarch

mean.model=list(model="constant"),distribution.model="mvnorm

根据估计因子构建数据矩阵的不同序列之间的估计关系表面

相关文章
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
7月前
|
数据采集 编解码 监控
Go语言实战案例:使用channel实现生产者消费者模型
本文是「Go语言100个实战案例 · 网络与并发篇」第4篇,通过实战案例详解使用 Channel 实现生产者-消费者模型,涵盖并发控制、任务调度及Go语言并发哲学,助你掌握优雅的并发编程技巧。
初识go变量,使用var和:=来声明变量,声明变量的三种方式
这篇文章介绍了Go语言中使用`var`和`:=`声明变量的三种不同方式,包括声明单个或多个变量、通过值确定数据类型以及在函数体内使用`:=`声明局部变量。
初识go变量,使用var和:=来声明变量,声明变量的三种方式
|
10月前
|
Go 容器
Go语言变量与常量 -《Go语言实战指南》
本章详细介绍了Go语言中变量与常量的基础知识。变量支持多种声明方式,包括标准声明、类型推导和短变量声明等,未初始化的变量会自动赋零值。常量在声明时必须赋值,且运行时不可更改,支持使用`iota`实现枚举。两者的主要区别在于变量可变而常量不可变,变量有零值而常量必须初始化。此外,还强调了`:=`的使用限制及代码整洁性要求,并通过实践示例巩固理解。掌握这些内容是学好Go语言的关键基础。
|
机器学习/深度学习 人工智能 测试技术
扩散模型版CS: GO!世界模型+强化学习:2小时训练登顶Atari 100K
《Diffusion for World Modeling: Visual Details Matter in Atari》提出了一种名为DIAMOND的方法,将扩散模型应用于世界模型构建。该方法在Atari 100K基准测试中仅用2小时训练时间就达到了前所未有的性能水平,平均人类归一化分数达1.46,超过人类水平。DIAMOND通过条件生成、网络预条件和高效采样等设计,提升了视觉细节捕捉、模型稳定性和计算效率。未来研究方向包括连续控制领域应用和更长记忆机制的整合。
319 10
|
存储 编译器 Go
go语言中的变量、常量、数据类型
【11月更文挑战第3天】
172 9
|
Go 调度 开发者
Go语言的并发编程模型
【10月更文挑战第26天】Go语言的并发编程模型
182 1
|
安全 测试技术 Go
Go语言中的并发编程模型解析####
在当今的软件开发领域,高效的并发处理能力是提升系统性能的关键。本文深入探讨了Go语言独特的并发编程模型——goroutines和channels,通过实例解析其工作原理、优势及最佳实践,旨在为开发者提供实用的Go语言并发编程指南。 ####
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。