楼主: 水轻轻
2791 12

[问答] MATLAB程序求助:关于GARCH模型估计的问题 [推广有奖]

  • 2关注
  • 1粉丝

硕士生

37%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
1.1800
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
1789 点
帖子
93
精华
0
在线时间
206 小时
注册时间
2012-3-22
最后登录
2023-2-16

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我自己写了个GARCH模型的极大似然估计,估计结果和直接用工具箱的结果差异非常大,请大神帮我看看问题出在哪里。
二维码

扫码加我 拉你入群

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

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

关键词:MATLAB程序 GARCH模型 MATLAB ARCH模型 matla

沙发
水轻轻 发表于 2018-3-15 18:41:47 |只看作者 |坛友微信交流群
GARCH.m文件代码
  1. function [logl] = loglikeli(parameter,r)
  2. %-----------------GARCH model-----------------------
  3. %      E[r(t)]=0
  4. %      r(t)=h(t)^0.5*randn(1)  
  5. %      h(t)=omega+alpha*r(t-1)^2+beta*h(t-1)
  6. %___________________________________________________

  7. omega=parameter(1);
  8. alpha=parameter(2);
  9. beta=parameter(3);
  10. T=length(r);

  11. % t= 2
  12. h(2)=(r(2)/randn(1))^2;

  13. % t=3 to T
  14. for k=3:T
  15.     h(k)=omega+alpha*r(k-1)^2+beta*h(k-1);
  16. end
  17. logl0=0;
  18. for t=2:T
  19. %----------------------loglikelihood fuction-----------------------
  20. %   logl=(-1/2)*sum((log(2*pi)+log(h(t))+r(t)^2/h(t)))
  21. %__________________________________________________________

  22.     logl=(1/2)*sum((log(2*pi)+log(h(t))+r(t)^2/h(t)));
  23.     logl=logl0+logl;
  24. end
  25. logl;
  26. end
复制代码

使用道具

藤椅
水轻轻 发表于 2018-3-15 18:43:04 |只看作者 |坛友微信交流群
估计程序estGARCH.m文件代码
  1. data=xlsread('E:\600109Mdata.xls');
  2. r=data(:,2);
  3. % 'interior-point', 'sqp'
  4. options= optimset( 'Algorithm','sqp' ,'Display','iter','Tolfun',1e-15,'MaxIter',500 ,'PlotFcns',@optimplotfval);
  5. A=[];
  6. B=[];
  7. Aeq=[];
  8. Beq=[];
  9. LB=[-Inf 0 0 ];
  10. UB=[Inf  1 1 ];
  11. NONLCON=[];
  12. X0=[0.001,0.05,0.9];
  13. [X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN]=fmincon(@GARCH,X0,A,B,Aeq,Beq,LB,UB,NONLCON,options,r);
  14. se=sqrt(diag(inv(HESSIAN)));
  15. Z=X'./se;
  16. results=[X',se,Z];
  17. disp(['----params------se------Z-stat----']);
  18. disp(results)
复制代码

使用道具

板凳
水轻轻 发表于 2018-3-15 18:43:45 |只看作者 |坛友微信交流群
数据文件

600109Mdata.xls

202 KB

使用道具

报纸
水轻轻 发表于 2018-3-15 18:52:59 |只看作者 |坛友微信交流群
似然函数写的不对还是思路本身就有问题,头疼啊

使用道具

地板
水轻轻 发表于 2018-3-27 23:56:41 |只看作者 |坛友微信交流群
终于知道哪里出错了,原来是似然函数没有写对

使用道具

7
dyj26201 发表于 2018-10-8 20:54:54 |只看作者 |坛友微信交流群
楼主可以发一份正确的garch代码不,最近也在琢磨matlab里估计garch函数的源代码,实在是头疼呐,好长好长。方便的话,楼主把代码发到这个邮箱,可以不?1184024170@qq.com

使用道具

8
LUKE006 发表于 2019-3-4 20:39:12 |只看作者 |坛友微信交流群
楼主方便的话能不能发一份GARCH代码,最近正在研究GARCH模型的应用。谢谢!932230822@qq.com,这是邮箱,谢谢!!!

使用道具

9
啊哈嘿呀 发表于 2019-4-4 16:01:33 |只看作者 |坛友微信交流群
LUKE006 发表于 2019-3-4 20:39
楼主方便的话能不能发一份GARCH代码,最近正在研究GARCH模型的应用。谢谢!932230822@qq.com,这是邮箱,谢 ...
请问你最后写出GARCH的代码了吗?能不能发我一份啊?1203371573@qq.com

使用道具

10
水轻轻 发表于 2019-6-13 09:49:41 |只看作者 |坛友微信交流群
dyj26201 发表于 2018-10-8 20:54
楼主可以发一份正确的garch代码不,最近也在琢磨matlab里估计garch函数的源代码,实在是头疼呐,好长好长。 ...
function [logl] = GARCH(parameter,r)
%-----------------GARCH model-----------------------
%      E[r(t)]=0
%      r(t)=h(t)^0.5*randn(1)  
%      h(t)=omega+alpha*r(t-1)^2+beta*h(t-1)
%___________________________________________________

omega=parameter(1);
alpha=parameter(2);
beta=parameter(3);
T=length(r);
h=zeros(T,1);

% t= 1
h(1)=sum(r.^2)/T;

% t=2 to T
for k=2:T
    h(k)=omega+alpha*r(k-1)^2+beta*h(k-1);
end

    logl=-(T/2)*log(2*pi)-sum(log(sqrt(h)))-0.5*sum(r.^2./h);
    logl=-logl;

end

使用道具

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

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

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

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