楼主: tulipsliu
26985 44

[有偿编程] MRS DCC GARCH 模型的MATLAB 程序修改 [推广有奖]

促进中国计量经济学发展学科带头人

学科带头人

43%

还不是VIP/贵宾

-

威望
0
论坛币
386080 个
通用积分
470.0502
学术水平
127 点
热心指数
140 点
信用等级
103 点
经验
46957 点
帖子
1769
精华
0
在线时间
2481 小时
注册时间
2007-11-5
最后登录
2024-4-26

初级热心勋章

188论坛币

这个是用先从朋友的哪里找到的程序,然后再修改。朋友程序的原出处:
https://bbs.pinggu.org/viewthread.php?tid=1109721&page=1#pid9381852
这个是他在论坛的帖子。
然后,尝试规范地写成 ucsd_garch 里 dcc_mvgarch 的估计函数形式。不过有一定的错误。状态转移概率甚至会超过1,达到1.4多。
附上程序压缩文件,里面还有论文一篇,期待懂的朋友修改下,如果结果理想。奖励100论坛币。

很期待 epoh 的回复,我期待朋友们帮忙解决这个问题。

注意:这个是根据ucsd_garch 工具箱的形式修改,会调用里面的函数,使用前先确定已经装上这个工具箱,要不估计的时候,tgach等估计函数会没用,会导致错误。所以在使用前,请务必先装上Ucsd_garch toolbox。

————————————————————————————————————————————————————————————
最近忙这个程序用了将近一个月,都差点忘记了自己9月得考一个重要的从业资格证书。暂且只能到这里了。我再把最新修改的程序上传,让后来者可以继续。Epoh说得对,第一步的估计就缺少了 Markov regime swithcing 效应。 第一步调用时 stdresid=fattailed_garch(para,data);这里没有加入状态效应。等后面主优化函数,
[dccpara,]=fmincon('mrs_dcc_mvgarch_likelihood',dccstarting,……opion,stdresid,,,);等到这里调用时, Qt(t)=(1-a-b)Qbar+a*(stdresid(state)(t-1)'*stdresid(state)(t-1)+b*Qt(t-1);,此时函数里的 stdresid(state)(t-1),就缺少状态效应。所以这个程序的修改很复杂。
同时的,因为这样书写。一个是缺少一般性,强行定格在“两个状态”,程序代码臃肿,不美观,zhangtao老师也说这个程序不好阅读。这个是需要后来继续修改的人值得考虑的地方。另一个推荐是看 朱钧钧 提到的 3-state_garch 模型的程序,这个用的是 Ggriddy Gibbs sampling。这个算法用的是 Markov chain monte carlo 算法,避免了MLE 算法陷入局部最优解的可能。

————————————————————————————————————————————————————————————

MarkovDccSource 是2011年6月27日上传,也把有 swgarchlike() 这个函数的文件夹包含进去,让后来的人可以参考修改 fattailed_garch()函数,让它可以有状态转移效应。

MarkovSwitchingDCC.rar

269.21 KB

MarkovDccSource.rar

932.82 KB

最佳答案

epoh 查看完整内容

两个时间序列, 若先以MRS-GARCH-N估计, 除可各估计出10 parameters外 亦可由swgarchlik()估计出 LLF,likelihoods,e,p1,p1t,p1sm(smoothprob),h1,h2,h 有了这些数据, 就可依Caporin and Billio (2005) page 8/22 进行下列步骤: given the filtered probabilities evaluate the regime dependent likelihood ............. [vi] update the correlation matrix using the following approximation [vii] iterate to ...
关键词:dcc garch MATLAB GARCH matla atlab MATLAB GARCH 模型 DCC MRS

回帖推荐

epoh 发表于5楼  查看完整内容

老大,真佩服你,也只有你有这种能耐! 整个结构都变了,相当费时! A Bivariate Markov Regime Switching GARCH Approach to Estimate Time Varying Minimum Variance Hedge Ratios.pdf 1.State transition probabilities are assumed to follow a logistic distribution page 11/35,formula(20),formula(21) 2.conditional variances and residuals formula(23),formula(24)
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
yexingtianma + 1 + 1 + 1 感谢分享
epoh + 1 + 1 + 1 感谢学术分享

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

本帖被以下文库推荐

劳动经济学
沙发
epoh 发表于 2011-6-21 20:19:14 |只看作者 |坛友微信交流群
两个时间序列,
若先以MRS-GARCH-N估计,
除可各估计出10 parameters外
亦可由swgarchlik()估计出
LLF,likelihoods,e,p1,p1t,p1sm(smoothprob),h1,h2,h

有了这些数据,
就可依Caporin and Billio (2005) page 8/22
进行下列步骤:
[i] given the filtered probabilities
[ii] evaluate the regime dependent likelihood
.............
[vi] update the correlation matrix using the following approximation
[vii] iterate [i] to [vi] until the end of the sample

这个部份,应该就是你着墨最深,
也是最深入的部分!
因为你的ms_dcc_mvgarch_likelihood.m
ms_dcc_mvgarch_full_likelihood.m
似乎就是依此编程的.

使用道具

藤椅
yucongy 发表于 2011-6-23 13:57:45 |只看作者 |坛友微信交流群
会不会存在路径依赖~
不经意间一年过去了,发现学到的东西不少,但是要学的东西却越来越多
若有问题咨询,请邮件联系:yucong134@163.com

使用道具

板凳
tulipsliu 在职认证  发表于 2011-6-23 16:16:37 |只看作者 |坛友微信交流群
2# yucongy
我对这个也有很多疑惑。本身DCC GARCH 的估计就已经很难,算是比较那一理解的。再加上 Markov regime switching 效应,对模型的理解就都更难了。
这个方面的研究,在非多元GARCH模型里,比如一般的模型 ,GARCH/ ARCH 等,也有做 MRS的。比较著名的,一个是 汉密尔顿在1994年吧,用卡尔曼滤波技术做出了MRS GARCH 模型。这个是开创的。然后有KIM。KIM专门出了一本书,就叫 《State-space regime model》,同时也有他的论文。不过对于动态相关多元GARCH,Kim的滤波技术必须得修正,这个在资料里的论文里提到。
问题是用论文里的方程写出的代码,最终估计出的结果不理想。所以发帖请大家看看,该怎么修改。
这个运行的时候甚至是复数的。包括 logL 对数似然函数的值,不是一个实数,而是复数。
后来我又修改下,可以正常的优化,没有复数了。不过结果依然不理想,所以想请各位看看,看一下该怎么修改。

谢谢你的积极回复。
劳动经济学

使用道具

报纸
epoh 发表于 2011-6-23 20:28:38 |只看作者 |坛友微信交流群
老大,真佩服你,也只有你有这种能耐!
整个结构都变了,相当费时!


A Bivariate Markov Regime Switching GARCH Approach to
Estimate Time Varying Minimum Variance Hedge Ratios.pdf

abbr_83c51c99b970606b29a350e82c1b4b61.pdf (264.78 KB)


1.State transition probabilities are assumed to
  follow a logistic distribution
  page 11/35,formula(20),formula(21)
2.conditional variances and residuals
  formula(23),formula(24)

使用道具

地板
zhangtao 发表于 2011-6-23 21:46:20 |只看作者 |坛友微信交流群
??? At compilation "CleanUp" was determined to be variable.  As a variable,
it is uninitialized, but function "CleanUp" is now in context.
In MATLAB 7, you cannot use the same name in a single function as
both a function and a variable.

Error in ==> Demo_MS_DCC at 14
CleanUp

??? Error: File: C:\MarkovSwitchingDCC\ms_dcc_mvgarch.m Line: 100 Column: 17
Incomplete or misformed expression or statement.

??? Error: File: C:\MarkovSwitchingDCC\ms_dcc_mvgarch_full_likelihood.m Line: 21 Column: 7
Incomplete or misformed expression or statement.

Error in ==> ms_dcc_mvgarch_likelihood at 10
[t,k]=size(stdresid);
??? Input argument "x" is undefined.

Error in ==> tvp_markov_filter at 53
[n k] = size(x);

运行你提供的程序,matlab7提示以上错误,不知是什么原因?
另外,因为我主要做金融计量,所以多次做过GARCH模型,
我看你的这个问题懂的人不多,估计还得自己多操心解决了。
当然论坛上的朋友也会尽力的。
数学好就是要天天学

使用道具

7
zhangtao 发表于 2011-6-23 22:10:52 |只看作者 |坛友微信交流群
??? Error using ==> fmincon
FMINCON cannot continue because user supplied objective function failed with the following error:
Invalid MEX-file 'E:\Ucsd Garch\jplv7\Ucsd_garch\Pre 7.1 32-bit Binaries\tarchcore.dll': 找不到指定的程序。

.

Error in ==> tarch at 149
[parameters, LLF, EXITFLAG, OUTPUT, LAMBDA, GRAD] =  fmincon('tarchlikelihood', [omega ; alpha; tarch ; beta] ,sumA  , sumB ,[] , [] , LB , UB,[],options,data, p ,o, q, m, stdEstimate, type);

Error in ==> multigarch at 157
startingvalues(1:1+p+q+o)=tarch(data,p,o,q,'TARCH',[],newoptions);

Error in ==> ucsd_garch_demo at 196
[parametersAP, likelihoodAP, stderrorsAP, robustSEAP, htAP, scoresAP]=multigarch(errors,1,1,1,'APGARCH','NORMAL');
楼主,请问以上问题如何解决?
数学好就是要天天学

使用道具

8
tulipsliu 在职认证  发表于 2011-6-24 11:08:49 |只看作者 |坛友微信交流群
6# zhangtao
回复你两个问题:
一、我的程序中,在 脚本程序里有一个 ClenUp ,这个是我自己写的一个命令文件,作用是用来清屏和删除所有图片文件的,让程序一运行,就保持所有的其他都干净,还包括清除MATLAB里的内存变量。是我的粗心大意,不好意思。
你在这个命令语句的前面加一个 %  ,让它变为备注说明语句,不执行,就可以了。
当然,你说我的程序运行,其他主文件,比如 likelihood 里有错误。那已经是下面要回答你的第二个问题。

二、你的mvgarch 估计程序出错。提示的是 tgarch() 函数不存在,尤其是那个文件夹下的 .dll 文件。
MATLAB 是打算以后不支持.dll 文件的。当然,这个是技术问题。其实 Keven  的工具箱里还包括 .mex32  和 .mex64 文件。这两种文件,在高版本的MATLAB 里,都会自动屏蔽掉.dll 文件(动态链接库)。直接调用 .mex 文件,这个是MATLAB 最喜欢的。而且Keven   的 UCSD_GARCH TOOLBOX 里,32位的和64位的都用,看你的计算机系统。
一个是文件夹命名的问题。 MATLAB 的文件夹命名不喜欢有空格,有不合法的字符 ,你看文件夹名字里的点, 这些符号,都是不合法的。一个是你可以修改文件夹名字,让它更合法。一个是你的工具箱可以能没装好。你重新下载,再装上。
基本就可以解决你的问题。
劳动经济学

使用道具

9
zhangtao 发表于 2011-6-24 22:08:35 |只看作者 |坛友微信交流群
感谢楼主的回复!
我运行你的程序,也运行过复旦朱均均教授的程序,总之是在运行时
提示了好多错误,修改好一个后,另一个又出现了,
不知你有什么好的建议!
另外,你的mrs dcc garch程序说句实话,我几乎看不懂,估计看懂的人不多,
你要是解决问题之后,麻烦告诉我一声是怎么解决的。
另外,我觉得金融计量非常有意思,希望以后多与你讨论。
数学好就是要天天学

使用道具

10
tulipsliu 在职认证  发表于 2011-6-24 23:05:37 |只看作者 |坛友微信交流群
4# epoh
哥们儿,这个程序我做两两周多了,修改多次。
有的时候是复数,logL是复数,让我很郁闷。有的时候也正常点。呵呵。有两天曾经有逻辑错误,就做DEBUG,设置短点,看错在哪里。
诶,今早就看到你的回复,我好高兴。可是,我也不知道从哪里入手。今天又修改了几次,运行的结果又是复数。真的很郁闷。
你发的论文我看了。我也补充一篇中文的论文吧。这个也有多个模型的比较。
劳动经济学

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

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

GMT+8, 2024-4-27 08:26