DCC-MGARCH:动态条件相关系数模型 (R+Stata)

发布时间:2020-07-24 阅读 14143

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course

作者: 吕政 (中央财经大学)
邮箱: 1433722321@qq.com


目录


1. GARCH 模型介绍

简单地说,多元 GARCH 指的是多个时间序列之间各自波动的交互影响,这里的波动具体指的是建立时间序列 ARIMA 或 VAR 模型后,提取到的各时间序列残差的波动。在介绍多元 GARCH 中的 DCC (Dynamic Conditional Correlational) 模型之前,我们先来介绍基础的 GARCH 模型。在对金融时间序列进行建模时,我们常常会碰到误差项的方差会随着时间的变化而变化的现象,直观的看,方差存在明显的波动聚集性。我们需要估计出很多个参数,才能尽可能的描述出这个随时间变化而改变的异方差函数的生成过程,但这是很难做到的。为此,Bollerslev (1986) 提出了 GARCH 模型,接下来简单的介绍一下 GARCH (p, q) 模型:

在 GARCH 模型里,随时间变化而变化的方差 σt2 既依赖于方差自身的滞后期 σtt2,又依赖于误差项平方的滞后期 uttj2。特别地,当 p = 0 时,GARCH (p, q) 模型还可以进一步简化成 ARCH (q) 模型。GARCH (1, 1) 模型是最简单的 GARCH 模型,它的方差方程可以表示为:

张世英和樊智 (2014) 发现,金融时间序列的相关性信息能够较好的被 1 阶的波动相关性所解释。因此在实际应用中,GARCH (1, 1) 模型的估计效果往往较为理想,并且它只有三个未知参数需要估计,估计起来比较方便。

2. DCC-MGARCH 基本原理

当研究对象从单个金融时间序列拓展到多个金融时间序列时,我们可能会对多个时间序列之间波动的动态相关性感兴趣,即一个时间序列的波动和另一个时间序列的波动之间的相关关系随着时间的变化会产生什么样的改变。针对这个问题,Engle (2002) 提出了动态条件相关 GARCH 模型,简记为: DCC-MGARCH 模型,模型的设定如下:

Rt 表示我们感兴趣的多个时间序列的动态相关性。通过指数平滑的方式,可以将条件相关矩阵 Rt 表示为:

式中 λ(0<λ<1) 为平滑系数。为此,可以构造指数平滑模型:

也可以借鉴 GARCH(1, 1)模型的形式,将 qij,t 表示为:

式中,ρ¯ij 为 εi,tεj,t 与 εi,t1εj,t1 之间的非条件相关。也可以将上述过程用矩阵的形式表示成:

3. 软件实现

3.1 R 语言命令

library(xts)  ###加载xts包

#数据下载地址:https://gitee.com/arlionn/data/blob/master/data01/RDJI.csv
RDJI=read.csv("D:/R/RDJI.csv",header=T)  ###读取美国道琼斯指数残差的时间序列,记为RDJI
                                         ###csv表格中共有两列数据,第一列为时间,第二列为美国道琼斯指数的残差。后表类似
RDJI=xts(RDJI[,2],as.Date(RDJI[,1]))

#数据下载地址:https://gitee.com/arlionn/data/blob/master/data01/RSH.csv
RSH=read.csv("D:/R/RSH.csv",header=T)  ###读取上证综合指数残差的时间序列,记为RSH
RSH=xts(RSH[,2],as.Date(RSH[,1]))

#数据下载地址:https://gitee.com/arlionn/data/blob/master/data01/RHIS.csv
RHIS=read.csv("D:/R/RHIS.csv",header=T)  ###读取香港恒生指数残差的时间序列,记为RHIS
RHIS=xts(RHIS[,2],as.Date(RHIS[,1]))

r.data3 <- merge(RDJI, RSH, join='inner')  ###将三个残差序列根据时间轴合并在一起
r.data3 <- merge(r.data3, RHIS, join='inner')

R3 <- r.data3[!apply(is.na(r.data3), 1, any), ]

colnames(R3) <- c('RDJI', 'RSH', 'RHIS')
R3=as.matrix(R3)   ###将读入的数据转化为矩阵
head(R3)
tail(R3)

a <- c(0.003, 0.005, 0.001)  ###赋初始值,初始值可以随意设定,不大于1即可
A <- diag(c(0.2, 0.3, 0.15))  ###赋初始值
B <- diag(c(0.75, 0.6, 0.8))  ###赋初始值
dcc.para <- c(0.01, 0.98)     ###输入参数,两个参数的和小于1即可

library(ccgarch)  ###调用包

results=dcc.estimation(inia=a,iniA=A,iniB=B,dvar=R3,ini.dcc=dcc.para,model="diagonal")   ###祥见包
results$DCC[,2]   ###表示提取第1个资产和第2个资产之间的相关系数
plot(results$DCC[,2])

setwd("D:/R")
write.table(results$DCC[,2] ,"1-2.csv",sep="," ,row.names = FALSE)   ###输出文件1-2.csv,得到图1中美国道琼斯指数和上证综合指数的动态相关系数
results$DCC[,3]
plot(results$DCC[,3])

setwd("D:/R")
write.table(results$DCC[,3] ,"1-3.csv",sep="," ,row.names = FALSE)   ###输出文件1-3.csv,得到图1中美国道琼斯指数和香港恒生指数的动态相关系数
results$DCC[,6]
plot(results$DCC[,6])

setwd("D:/R")
write.table(results$DCC[,6] ,"2-3.csv",sep="," ,row.names = FALSE)  ###输出文件2-3.csv,得到图1中上证综合指数和香港恒生指数的动态相关系数
results$out  ###输出R的运行结果
> results$out
                   a1          a2         a3         A11        A22
estimates 0.014637709 0.006569595 0.01048189 0.123371751 0.07615895
std.err   0.003277379 0.014759043 0.01438213 0.002149385 0.01150633
                 A33         B11        B22        B33   dcc alpha
estimates 0.06718655 0.861737517 0.92137673 0.92219304 0.006096192
std.err   0.01098268 0.002631858 0.01247057 0.01159667 0.001019117
             dcc beta
estimates 0.992867605
std.err   0.001362379

3.2 Stata 命令

*数据下载地址
*https://gitee.com/arlionn/data/blob/master/data01/MGARCH_Lianxh.dta
use MGARCH_Lianxh.dta, clear
tsset date
mgarch dcc (rdji rsh rhis), arch(1) garch(1)
Number of gaps in sample:  1115
(note: conditioning reset at each gap)

Calculating starting values....

Optimizing log likelihood

(setting technique to bhhh)
Iteration 0:   log likelihood = -18529.618  
Iteration 1:   log likelihood = -18196.975  
Iteration 2:   log likelihood = -18104.259  
Iteration 3:   log likelihood = -18062.213  
Iteration 4:   log likelihood = -18038.042  
Iteration 5:   log likelihood = -18030.291  
Iteration 6:   log likelihood = -18025.904  
Iteration 7:   log likelihood = -18023.312  
Iteration 8:   log likelihood = -18021.397  
Iteration 9:   log likelihood = -18020.291  
(switching technique to nr)
Iteration 10:  log likelihood = -18019.895  
Iteration 11:  log likelihood = -18019.753  
Iteration 12:  log likelihood = -18019.753  

Refining estimates

Iteration 0:   log likelihood = -18019.753  
Iteration 1:   log likelihood = -18019.753  

Dynamic conditional correlation MGARCH model

Sample: 36536 - 44014, but with gaps              Number of obs   =      4,678
Distribution: Gaussian                            Wald chi2(.)    =          .
Log likelihood = -18019.75                        Prob > chi2     =          .

---------------------------------------------------------------------------------
                |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
----------------+----------------------------------------------------------------
rdji            |
          _cons |    .032225   .0112204     2.87   0.004     .0102334    .0542166
----------------+----------------------------------------------------------------
ARCH_rdji       |
           arch |
            L1. |   .3615092   .0284698    12.70   0.000     .3057095    .4173089
                |
          garch |
            L1. |   .6435831   .0419443    15.34   0.000     .5613738    .7257924
                |
          _cons |  -.0039582   .0248208    -0.16   0.873     -.052606    .0446897
----------------+----------------------------------------------------------------
rsh             |
          _cons |  -.0111944   .0122853    -0.91   0.362    -.0352731    .0128844
----------------+----------------------------------------------------------------
ARCH_rsh        |
           arch |
            L1. |   .1806163   .0210756     8.57   0.000     .1393089    .2219238
                |
          garch |
            L1. |   .8816867   .0545664    16.16   0.000     .7747386    .9886349
                |
          _cons |  -.1065287   .0366814    -2.90   0.004    -.1784229   -.0346346
----------------+----------------------------------------------------------------
rhis            |
          _cons |   .0084781   .0124588     0.68   0.496    -.0159407    .0328968
----------------+----------------------------------------------------------------
ARCH_rhis       |
           arch |
            L1. |   .1638418   .0191894     8.54   0.000     .1262313    .2014523
                |
          garch |
            L1. |   .8334373   .0538923    15.46   0.000     .7278104    .9390643
                |
          _cons |  -.0584887   .0363748    -1.61   0.108     -.129782    .0128045
----------------+----------------------------------------------------------------
  corr(rdji,rsh)|   .0724947   .0156304     4.64   0.000     .0418597    .1031298
 corr(rdji,rhis)|   .2655191   .0150769    17.61   0.000     .2359689    .2950693
  corr(rsh,rhis)|   .4044674   .0128094    31.58   0.000     .3793614    .4295734
----------------+----------------------------------------------------------------
Adjustment      |
        lambda1 |   .0136406   .0033562     4.06   0.000     .0070625    .0202186
        lambda2 |   .8065377   .0428302    18.83   0.000     .7225921    .8904832
---------------------------------------------------------------------------------

Note: 「数据文件地址」

4. DCC-MGARCH 模型的应用

我们收集了 2000 年 1 月 11 日至 2020 年 7 月 2 日美国道琼斯指数、上证综合指数和香港恒生指数的日度数据,经平稳性检验可知,三个时间序列均为一阶单整,因此利用对数收益率序列建模;经 VAR 判断滞后阶数为 4 阶,提取 VAR 模型的残差,经检验具有显著的 ARCH 效应,接下来利用残差时间序列建立 DCC 模型。为直观显示股指收益率间的动态条件相关性,将相关系数时间序列绘制成图 1。图 1 中的三组时序图来源于上一部分得到的三个文件 (1-2.csv、1-3.csv、2-3.csv)。从图 1 可知,自 2000 年以来,道琼斯指数的波动率和上证综指恒生指数的波动率之间波动较大,大致呈现逐年波动提高的趋势,上证综指和恒生指数的波动相关性之间明显具有先下降后上升的关系。

5. 参考文献

  • Bollerslev T. Generalized autoregressive conditional heteroskedasticity[J]. Journal of econometrics, 1986, 31(3): 307-327. -Link-
  • Engle R. Dynamic conditional correlation: A simple class of multivariate generalized autoregressive conditional heteroskedasticity models[J]. Journal of Business & Economic Statistics, 2002, 20(3): 339-350. -Link-
  • 刘丽萍, 马丹, 白万平. 大维数据的动态条件协方差阵的估计及其应用[J]. 统计研究, 2015 (6): 105-112. -Link-
  • 张世英, 樊智. 协整理论与波动模型: 金融时间序列分析及应用[M]. 清华大学出版社有限公司, 2004. -Link-

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD