多变量GARCH模型R代码实现

      大家好,我是带我去滑雪!

     多变量GARCH(Generalized Autoregressive Conditional Heteroskedasticity)模型是一种用于建模多个时间序列变量之间的条件异方差性(conditional heteroskedasticity)的统计模型。它在金融、经济学和其他领域中具有广泛的用途,并具有以下用途和优点:

    用途如下

  1. 风险度量: 多变量GARCH模型用于度量多个资产或变量之间的风险,有助于投资者和决策者了解不同资产之间的相关性和波动性。这对于风险管理和投资组合优化至关重要。

  2. 资产组合优化: 在资产配置和投资组合管理中,多变量GARCH模型有助于建立更准确的风险模型,以帮助投资者构建风险调整后的收益最大化的投资组合。

  3. 金融衍生品定价: 多变量GARCH模型用于衍生品定价和风险管理,例如期权、期货和其他金融衍生品的定价模型。

  4. 宏观经济研究: 在经济学中,多变量GARCH模型可用于分析多个宏观经济变量之间的条件异方差性,以深入了解宏观经济波动和政策决策。

  5. 时间序列分析: 多变量GARCH模型用于对多个时间序列数据进行建模,以分析它们之间的相互作用和动态关系。

    优点如下:

  1. 考虑了波动性的动态性: 多变量GARCH模型考虑了条件异方差性的动态性,即波动性会根据历史信息的变化而变化。这更贴近实际市场情况,尤其是金融市场中的波动性通常是时间变化的。

  2. 处理多个变量之间的相关性: 该模型允许分析多个相关变量的条件异方差性,因此可以揭示它们之间的相互作用和影响,这对于风险管理和资产组合管理至关重要。

  3. 有丰富的变种: 多变量GARCH模型有多种变种,如BEKK-GARCH、DCC-GARCH等,可根据不同问题的需求进行调整和扩展,以适应复杂的建模情境。

  4. 有效的风险管理工具: 通过测量不同资产或变量之间的风险和相关性,多变量GARCH模型为风险管理提供了有效的工具,使投资者能够更好地管理投资组合风险。

      下面开始多变量GARCH模型的R代码实战。

(1)数据准备

       数据使用Brent原油数据和Wti原油数据,研究二者之间的条件异方差性。

dat1.tmp <-read.csv("E:/brent.csv")
head(dat1.tmp)

输出结果:


dat2.tmp <- read.csv("E:/wti.csv")
head(dat2.tmp)

输出结果:

      Dates  Open  High   Low Last Change Settle Volume Open.Interest
1 1983/3/30 29.01 29.56 29.01   NA     NA  29.40    949           470
2 1983/3/31 29.40 29.60 29.25   NA     NA  29.29    521           523
3  1983/4/4 29.30 29.70 29.29   NA     NA  29.44    156           583
4  1983/4/5 29.50 29.80 29.50   NA     NA  29.71    175           623
5  1983/4/6 29.90 29.92 29.65   NA     NA  29.90    392           640
6  1983/4/7 29.90 30.20 29.86   NA     NA  30.17    817           795
dat1=xts::as.xts(dat1.tmp[,5], as.Date(dat1.tmp[,1]))#将Brent原油数据中的第五列Settle与第一列时间合并
dat2=xts::as.xts(dat2.tmp[,7], as.Date(dat2.tmp[,1]))#与上面同理
head(dat1); head(dat2) 

输出结果:

            [,1]
1990-08-17 27.12
1990-08-20 27.38
1990-08-21 27.63
1990-08-22 30.19
1990-08-23 30.85
1990-08-24 30.10
            [,1]
1983-03-30 29.40
1983-03-31 29.29
1983-04-04 29.44
1983-04-05 29.71
1983-04-06 29.90
1983-04-07 30.17
Y1x=diff(log(dat1))*100; Y2x=diff(log(dat2))*100 #计算报酬率
Data=na.omit(merge(Y1x,Y2x)) 
colnames(Data)=c("Brent","Wti") 
head(Data) 

输出结果:

                 Brent        Wti
1990-08-20   0.9541357 -0.2447982
1990-08-21   0.9089319 -0.5265942
1990-08-22   8.8608605  9.4317719
1990-08-23   2.1626007  2.2487092
1990-08-24  -2.4611579 -3.2466251
1990-08-28 -12.0610951  3.5411621

       可以绘制 Brent和Wti的时间序列图,如下:

(2)估计基准DCC模型

library(rmgarch) 
meanSpec=list(armaOrder=c(1,0), include.mean=TRUE, archpow=2)
varSpec=list(model="eGARCH", garchOrder = c(2,1))
distSpec = c("mvt") 
spec = ugarchspec(mean.model=meanSpec, variance.model=varSpec)
mySpec0=multispec(list(spec, spec))
mySpec = dccspec(mySpec0, VAR = TRUE, robust = TRUE, lag.max =20, lag.criterion = "AIC", model="aDCC", distribution=distSpec)
fitDcc=dccfit(data=Data, mySpec, solver="solnp") 
show(fitDcc)  

输出结果:

*---------------------------------*
*          DCC GARCH Fit          *
*---------------------------------*

Distribution         :  mvt
Model                :  aDCC(1,1)
No. Parameters       :  99
[VAR GARCH DCC UncQ] : [82+12+4+1]
No. Series           :  2
No. Obs.             :  6176
Log-Likelihood       :  -26580.6
Av.Log-Likelihood    :  -4.3 

Optimal Parameters
-----------------------------------
                Estimate  Std. Error     t value Pr(>|t|)
[Brent].omega   0.014021    0.002192     6.39720 0.000000
[Brent].alpha1 -0.042463    0.029515    -1.43870 0.150235
[Brent].alpha2  0.034299    0.028255     1.21393 0.224775
[Brent].beta1   0.993653    0.000022 45405.17851 0.000000
[Brent].gamma1  0.145203    0.038973     3.72572 0.000195
[Brent].gamma2 -0.017929    0.037409    -0.47927 0.631746
[Wti].omega     5.035586    0.253793    19.84131 0.000000
[Wti].alpha1    0.627256    0.093282     6.72427 0.000000
[Wti].alpha2    0.242307    0.193114     1.25473 0.209576
[Wti].beta1     0.030845    0.034868     0.88462 0.376359
[Wti].gamma1    0.934502    0.134395     6.95337 0.000000
[Wti].gamma2    3.460364    0.222249    15.56975 0.000000
[Joint]dcca1    0.006693    0.003728     1.79531 0.072604
[Joint]dccb1    0.973724    0.009904    98.32013 0.000000
[Joint]dccg1    0.002541    0.003605     0.70495 0.480842
[Joint]mshape   4.000000    0.141729    28.22291 0.000000

Information Criteria
---------------------
                   
Akaike       8.6398
Bayes        8.7476
Shibata      8.6393
Hannan-Quinn 8.6772


Elapsed time : 1.39972 

(3)取出对象和绘图

GARCH=sigma(fitDcc)  
head(GARCH) 

输出结果:

              Brent         Wti
1990-08-20 2.221890    2.462386
1990-08-21 2.221890    2.462386
1990-08-22 2.165188    2.758191
1990-08-23 2.549332   45.850703
1990-08-24 2.616450 1370.848840
1990-08-28 2.742976    2.935267
dev.new(); plot(fitDcc,which=4) 
dev.new(); nisurface(fitDcc) 
COV=rcov(fitDcc) 
COV 
Rho=rcor(fitDcc)
Rho  
COV12=as.data.frame(Cov[1,2,])
head(COV12)
Rho12=as.data.frame(Rho[1,2,])
head(Rho12)
DCCtest(Data, garchOrder = c(1,1), n.lags = 1, solver = "solnp", solver.control = list(), cluster = NULL, Z = NULL)

输出结果:

(4)设置条件多样化

        估计基准DCC模型中的代码使用了设定条件均一样的两笔数据。实际上 ,除了概率分布必须相同外,均值和方差的形式可以选择不一样的。

library(rmgarch) 
meanSpec1<-list(armaOrder=c(1,0), include.mean=TRUE, archpow=2)
varSpec1<-list(model="eGARCH", garchOrder = c(2,1))
meanSpec2<-list(armaOrder=c(1,1), include.mean=TRUE, archpow=2)
varSpec2<-list(model="sGARCH", garchOrder = c(1,2))
distSpec<-c("mvt") 
spec1<-ugarchspec(mean.model=meanSpec1, variance.model=varSpec1)
spec2<-ugarchspec(mean.model=meanSpec2, variance.model=varSpec2)
mySpec2<-multispec(list(spec1,spec2))
mySpecX<-dccspec(mySpec2, VAR = TRUE, robust = TRUE, lag.max =20 ,lag.criterion = "AIC", model="aDCC", distribution=distSpec)
fitDcc2<-dccfit(data=Data, mySpecX, solver="solnp") 
show(fitDcc2) 
slot(fitDcc2,"mfit")$matcoef 

需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/1E59qYZuGhwlrx6gn4JJZTg?pwd=2138
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/116772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文读懂:什么是块存储、文件存储、对象存储?

大家好&#xff0c;我是小学僧。 提到"存储"&#xff0c; 你首先想到的是这个&#xff1f; 还是这个&#xff1f; 也或者还有这个&#xff1f; 哈哈&#xff0c;没错&#xff0c;我们生活中已经离不开存储&#xff0c;视频、音乐、图片、文本、表格这样的数据文件都…

mac上mongodb 以及可视化工具 下载以及安装

简介 1. 下载 官网上的下载地址藏得非常深&#xff0c;不花老半天 根本找不到 下载地址 https://www.mongodb.com/try/download/community 目前最新社区版本7.0.2 下载链接 mac intel芯片 &#xff1a; https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.2.tgz ma…

【Docker从入门到入土 5】 使用Docker-compose一键部署Wordpress平台

Docker-compose 一、YAML 文件格式及编写注意事项&#xff08;重要&#xff09;1.1 简介1.2 yaml语法特性1.3 yaml文件格式1.4 json格式简介 二、Docker-compose2.1 简介2.2 docker-compose的三大概念2.3 docker-compose配置模板文件常用的字段2.4 docker-compose 常用命令 三、…

1-08 移动端适配 rem+vm

移动端适配 remvm React配置postcss-px-to-viewport 安装依赖&#xff1a;在项目根目录下运行以下命令安装所需的依赖包&#xff1a; npm install postcss-px-to-viewport --save-dev配置代码 const path require(path);module.exports {webpack: {alias: {: path.resolv…

tuxera ntfs2024破解版mac电脑磁盘读写软件

大家都知道由于操作系统的原因&#xff0c;在苹果电脑上不能够读写NTFS磁盘&#xff0c;但是&#xff0c;今天小编带来的这款tuxera ntfs 2024 mac版&#xff0c;完美的解决了这个问题。这是一款在macOS平台上使用的磁盘读写软件&#xff0c;能够实现苹果Mac OS X系统读写Micro…

计算机组成原理(一目了然的顶级总纲)(持续更新!)

文章目录 886冯诺依曼计算机计算机的五大部件&#xff08;又称五大字系统&#xff09;细化的计算机组成框图存储器 886 计算机系统由“硬件”和“软件”两大部分组成。 计算机的软件通常又可以分为两大类&#xff1a;系统软件和应用软件。 冯诺依曼计算机 数学家冯诺依曼&am…

1-07 React配置postcss-px-to-viewport

React配置postcss-px-to-viewport 移动端适配 安装依赖&#xff1a;在项目根目录下运行以下命令安装所需的依赖包&#xff1a; npm install postcss-px-to-viewport --save-dev配置代码 const path require(path);module.exports {webpack: {alias: {: path.resolve(__di…

软考系列(系统架构师)- 2021年系统架构师软考案例分析考点

试题一 软件架构&#xff08;架构风格、质量属性&#xff09; 【问题1】&#xff08;9分&#xff09; 在架构评估过程中&#xff0c;质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。 请将合适的质量属性名称填入图1-1中(1)、(2)空白处&#xf…

蓝桥杯每日一题0223.10.23

第几天 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 简单枚举&#xff08;用k来记录经过的天数&#xff09; #include<bits/stdc.h> using namespace std; bool is_ren(int n) {if(n % 400 0 || (n % 4 0 && n % 100 ! 0))return true;return false; } int …

Towards a Rigorous Evaluation of Time-series Anomaly Detection(论文翻译)

1 Introduction 随着工业4.0加速系统自动化&#xff0c;系统故障的后果可能会产生重大的社会影响&#xff08;Baheti和Gill 2011; Lee 2008; Lee&#xff0c;Bagheri和Kao 2015&#xff09;。为了防止这种故障&#xff0c;检测系统的异常状态比以往任何时候都更加重要&#xff…

电脑待办事项提醒工具用哪个?

在一个繁忙的办公楼里&#xff0c;人们匆匆忙忙地穿梭着&#xff0c;电脑屏幕前的每个人都有着繁重的工作任务。为了应对这些任务&#xff0c;有人喜欢在纸上列出清单&#xff0c;有人则更愿意在电脑上记录&#xff0c;日常记录待办事项建议大家可以使用提醒工具敬业签。 敬业…

IP地址在各行业中的常见应用场景

IP地址在各行业中有多种应用场景&#xff0c;它不仅用于标识和定位设备&#xff0c;还用于实现各种功能和服务。以下是IP地址在不同行业中的一些应用场景&#xff1a; 互联网和通信行业&#xff1a; 网络寻址和标识&#xff1a; IP地址是互联网上的设备的唯一标识符&#xff0…

【Git】idea提交项目到Gitee

文章目录 1. 创建Gitee仓库1. 新建仓库2. 添加描述3. 复制仓库地址 2. idea建立连接提交2.1 Create Git Repository2.2 选择要提交的根目录2.3 Commit2.4 Push2.5 提交成功 1. 创建Gitee仓库 1. 新建仓库 2. 添加描述 3. 复制仓库地址 点击右上角克隆/下载&#xff0c;复制HT…

SparkSQL之LogicalPlan概述

逻辑计划阶段在整个流程中起着承前启后的作用。在此阶段&#xff0c;字符串形态的SQL语句转换为树结构形态的逻辑算子树&#xff0c;SQL中所包含的各种处理逻辑&#xff08;过滤、剪裁等&#xff09;和数据信息都会被整合在逻辑算子树的不同节点中。逻辑计划本质上是一种中间过…

配置公网和私网用户通过非公网口的IP地址访问内部服务器和Internet示例

组网需求 如配置公网和私网用户通过非公网口的IP地址访问内部服务器和Internet示例所示&#xff0c;某小型企业内网部署了一台路由器、一台FTP服务器和一台Web服务器。路由器作为接入网关&#xff0c;为下挂的内网用户提供上网服务&#xff0c;主要包括浏览网页、使用即时通信…

墨西哥专线:国产商品迅速开拓墨西哥市场的基础

随着全球贸易的不断发展&#xff0c;越来越多的中国企业开始将目光投向海外市场。墨西哥作为北美洲的重要国家&#xff0c;拥有庞大的消费市场和广阔的发展空间&#xff0c;对于中国企业来说&#xff0c;无疑是一个极具潜力的市场。然而&#xff0c;如何让国产商品在这个市场上…

基于ElasticSearch+Vue实现简易搜索

基于ElasticSearchVue实现简易搜索 一、模拟数据 产品名称描述价格库存数量品牌名称智能手表智能手表&#xff0c;具有健康跟踪和通知功能。199.991000TechWatch4K智能电视4K分辨率智能电视&#xff0c;提供出色的画质。699.99500VisionTech无线耳机降噪无线耳机&#xff0c;…

若依和芋道

国外卷技术,国内卷业务,做管理业务通常使用开源框架就可以快速满足,若依和芋道都是开源二开工具较为流行的框架,芋道是基于若依的,基本上是开发人员自己写业务开发框架的天花板,两者的前端都是基于vue-element-admin的,使用Gitee上两者的SpringBoot的最轻量化版本进行对…

485modbus转profinet网关连三菱变频器modbus通讯配置案例

本案例介绍了如何通过485modbus转profinet网关连接威纶通与三菱变频器进行modbus通讯。485modbus转profinet网关提供了可靠的连接方式&#xff0c;使用户能够轻松地将不同类型的设备连接到同一网络中。通过使用这种网关&#xff0c;用户可以有效地管理和监控设备&#xff0c;从…

VR航天科普主题公园模拟太空舱体验馆vr航天模拟体验设备

VR航天航空体验馆巡展是一项非常受欢迎的展览活动&#xff0c;可以让公众在现场体验到航天飞行的乐趣。 普乐蛙VR展览组织者会设计一个航天航空主题的VR体验馆&#xff0c;并在馆内设置各种航天航空相关的展示内容&#xff0c;如太空舱、火箭发射、星际航行等。 其次&#xff0…