楼主: hante865
34557 42

[R] DCC-GARCH模型R程序实现   [推广有奖]

  • 0关注
  • 7粉丝

讲师

24%

还不是VIP/贵宾

-

威望
0
论坛币
4117 个
通用积分
10.7700
学术水平
34 点
热心指数
29 点
信用等级
25 点
经验
8644 点
帖子
201
精华
0
在线时间
453 小时
注册时间
2010-3-5
最后登录
2024-4-25

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

源代码+论坛相似问题+补充





这是小弟做的DCC-GARCH模型程序。

1、源代码



  1. x=read.table("D:\\Backup\\我的文档\\研究生\\dcc-garch\\新数据\\中日收益.txt");<?xml:namespace prefix = "o" ns = "urn:schemas-microsoft-com:office:office" />
  2. library(ccgarch);
  3. library(fGarch);
  4. library(MASS);
  5. library(FinTS);
  6. library(tseries);
  7. library(vars);
  8. xt<-ts(x[,1:2],start=c(1,1));
  9. plot(xt, plot.type = "single",col=c("red","black"),lty=1:2);
  10. leg.names<-c("上证指数收益","日经指数收益");
  11. legend(locator(1),leg.names,lty=c(1,2), col=c("red","black"));
  12. y=xt[,1];
  13. z=xt[,2];
  14. data_outline <- function(x){
  15. n <- length(x)
  16. m <- mean(x)
  17. v <- var(x)
  18. s <- sd(x)
  19. me <- median(x)
  20. cv <- 100*s/m
  21. css <- sum((x-m)^2)
  22. uss <- sum(x^2)
  23. R <- max(x)-min(x)
  24. R1 <- quantile(x,3/4)-quantile(x,1/4)
  25. sm <- s/sqrt(n)
  26. g1 <- n/((n-1)*(n-2))*sum((x-m)^3)/s^3
  27. g2 <- ((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4- (3*(n-1)^2)/((n-2)*(n-3)))
  28. data.frame(N=n, Mean=m, Var=v, std_dev=s,
  29. Median=me, std_mean=sm, CV=cv, CSS=css, USS=uss,
  30. R=R, R1=R1, Skewness=g1, Kurtosis=g2, row.names=1)
  31. }
  32. data_outline(y);
  33. data_outline(z);
  34. jarque.bera.test(y);
  35. jarque.bera.test(z);
  36. c(ucv(y,length(y)),bcv(y,length(y)));
  37. plot(density(y,width=0.006),lty=3,ylim=c(0,80));
  38. hist(y,prob=T,col=0,add=T);
  39. a<-seq(-0.1,0.1,0.001);
  40. lines(a,dnorm(a,mean(y),sqrt(var(y))),lty=1);
  41. leg.names<-c("Kernel Density","Normal Density");
  42. legend(locator(1),leg.names,lty=c(3,1));
  43. c(ucv(z,length(z)),bcv(z,length(z)));
  44. plot(density(z,width=0.005),lty=3,ylim=c(0,80));
  45. hist(z,prob=T,col=0,add=T);
  46. lines(a,dnorm(a,mean(z),sqrt(var(z))),lty=1);
  47. leg.names<-c("Kernel Density","Normal Density");
  48. legend(locator(1),leg.names,lty=c(3,1));
  49. adf.test(y, alternative = c("stationary", "explosive"),k = trunc((length(y)-1)^(1/3)));
  50. adf.test(z, alternative = c("stationary", "explosive"),k = trunc((length(z)-1)^(1/3)));
  51. ArchTest(y,lags=3,demean=T);  #最后一项是为了去掉均值。
  52. ArchTest(z,lags=5,demean=T);
  53. garch.y=garch(y,order=c(1,1));
  54. summary(garch.y);
  55. garch.z=garch(z,order=c(1,1));
  56. summary(garch.z);
  57. inia=c(4.361e-07,8.327e-07);
  58. iniA=diag(c(4.769e-02,1.349e-01));
  59. iniB=diag(c(9.460e-01,8.546e-01));
  60. nobs=1713;
  61. dcc.para<-c(0.01,0.97);
  62. inicor=cor(y,z);
  63. uncR=matrix(c(1,inicor,inicor,1),2,2);
  64. dcc.results <- dcc.estimation(inia, iniA, iniB, dcc.para, dvar=xt, model="diagonal");
  65. out<-dcc.results$out;
  66. DCC<-dcc.results$DCC[,2];
  67. ts.plot(DCC);
复制代码


2、论坛相似问题




大海之子

ccgarch程序包给出的示例是这样子的

  1. Examples
  2. # Simulating data from the original DCC-GARCH(1,1) process
  3. nobs <- 1000; cut <- 1000
  4. a <- c(0.003, 0.005, 0.001)
  5. A <- diag(c(0.2,0.3,0.15))
  6. B <- diag(c(0.75, 0.6, 0.8))
  7. uncR <- matrix(c(1.0, 0.4, 0.3, 0.4, 1.0, 0.12, 0.3, 0.12, 1.0),3,3)
  8. dcc.para <- c(0.01,0.98)
  9. dcc.data <- dcc.sim(nobs, a, A, B, uncR, dcc.para, model="diagonal")
  10. # Estimating a DCC-GARCH(1,1) model
  11. dcc.results <- dcc.estimation(inia=a, iniA=A, iniB=B, ini.dcc=dcc.para,
  12. dvar=dcc.data$eps, model="diagonal")
复制代码


      里面的变量都是事先给定的,问题就在这里,相当于先假设一个DCC-GARCH,再用这些数去估计DCC-GARCH。不明白为什么?


      bensonwu
      A、B等这些初始化值设定比较好的方法是:先估计各自的garch参数,将其变换组合后作为初始值。知道各种数值优化方法特性就会知道初始值的设定对优化结果影响较大,而DCC-GARCH求解的过程就是数值优化的过程。

3、补充


epoh




  1. Kevin Sheppard
  2. UCSD_Garch toolbox
  3. [parameters,loglikelihood,Ht,Qt...]=dcc_mvgarch(data,dccP,dccQ,archP,garchQ)
  4. % INPUTS:
  5. % data=A zero mean t by k vector of residuals from some filtration
  6. % dccP=The lag length of the innovation term in the DCC estimator
  7. % dccQ=The lag length of the lagged correlation matrices in the DCC estimator
  8. % archP
  9. % garchQ  
  10. % example; dcc_mvgarch(data,1,1,1,1)
复制代码



dccstarting value 是如此设置
dccstarting=[ones(1,dccP)*.01/dccP ones(1,dccQ)*.97/dccQ];  
也就是当dccP = 1, dccQ = 1
ini.dcc 设置为 c(0.01,0.97)




——有谁做过DCC-GARCH模型的,请教高手。。。
本文来自: 人大经济论坛 R语言论坛 版,详细出处参考:
https://bbs.pinggu.org/forum.php?mod=viewthread&tid=861027&page=3&from^^uid=3495972



——素质版主 改

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:DCC-GARCH GARCH模型 ARCH模型 GARCH ARCH 程序 模型 程序 模型

已有 8 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
冰枫冷羽 + 50 + 10 + 2 + 2 精彩帖子
momingqimiao7 + 5 + 5 + 5 精彩帖子
日月星光清逸 + 2 + 2 + 3 + 2 精彩帖子
日新少年 + 2 + 2 + 2 精彩帖子
niuniuyiwan + 60 + 60 精彩帖子
crystal8832 + 36 + 2 + 2 + 2 精彩帖子
xddlovejiao1314 + 30 + 20 + 3 + 2 + 1 精彩帖子
我的素质低 + 20 + 20 + 5 精彩帖子

总评分: 经验 + 160  论坛币 + 148  学术水平 + 21  热心指数 + 16  信用等级 + 12   查看全部评分

本帖被以下文库推荐

做一名勇敢的骑士,打破黑暗的束缚
沙发
小幅儿乖乖 发表于 2015-2-28 20:49:06 |只看作者 |坛友微信交流群
建立DCC-GARCH模型前,应该还会对数据进行检验,根据情况处理后看是否服从正态分布,模型建立也不同?如果不服从正态分布,服从T分布,两步法的第二步应该怎么做?
已有 2 人评分经验 论坛币 收起 理由
niuniuyiwan + 30 + 3 发帖不易,感谢对楼主及本版的支持
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 经验 + 30  论坛币 + 8   查看全部评分

使用道具

藤椅
指间绕 发表于 2015-3-26 13:29:19 |只看作者 |坛友微信交流群
小幅儿乖乖 发表于 2015-2-28 20:49
建立DCC-GARCH模型前,应该还会对数据进行检验,根据情况处理后看是否服从正态分布,模型建立也不同?如果不 ...
我所了解的,如果服从T分布,就得利用copula-garch做了吧,不知道对不对,也在探索中
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

板凳
vivi梅吟 学生认证  发表于 2015-4-7 13:02:17 |只看作者 |坛友微信交流群
关注下~我原本想用这个模型写一篇文章,可是后来遭到多方反对,说是这个方法已经过时了,因而放弃了。
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

报纸
hante865 发表于 2015-4-25 14:18:30 |只看作者 |坛友微信交流群
vivi梅吟 发表于 2015-4-7 13:02
关注下~我原本想用这个模型写一篇文章,可是后来遭到多方反对,说是这个方法已经过时了,因而放弃了。
对呀,而且好多人都写过,所以不建议你再用这个写啦
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

地板
vivi梅吟 学生认证  发表于 2015-4-25 17:14:35 |只看作者 |坛友微信交流群
hante865 发表于 2015-4-25 14:18
对呀,而且好多人都写过,所以不建议你再用这个写啦
嘻嘻,已经放弃啦。其实吧,写程序这个对我而言也太难了

使用道具

7
我爱你222 发表于 2015-7-14 13:25:52 |只看作者 |坛友微信交流群
vivi梅吟 发表于 2015-4-7 13:02
关注下~我原本想用这个模型写一篇文章,可是后来遭到多方反对,说是这个方法已经过时了,因而放弃了。
真的啊???谁说过时了啊  啊啊  

使用道具

8
niuniuyiwan 在职认证  发表于 2015-7-24 10:57:07 |只看作者 |坛友微信交流群
好帖,谢谢分享
已有 1 人评分论坛币 收起 理由
xddlovejiao1314 + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

9
xddlovejiao1314 学生认证  发表于 2015-7-24 22:53:00 |只看作者 |坛友微信交流群
好贴,谢谢分享。
已有 1 人评分论坛币 收起 理由
niuniuyiwan + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

使用道具

10
maoxiaojie612 发表于 2015-9-1 13:19:07 |只看作者 |坛友微信交流群
谢谢 关注 为什么说过时呢?做股指期货的领先滞后关系不可以么?
已有 1 人评分论坛币 收起 理由
niuniuyiwan + 5 鼓励积极发帖讨论

总评分: 论坛币 + 5   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 14:55