全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Gauss专版
4198 6
2012-11-01
proc likelihood(prmtr1);
local prmtr,p11,p22,p12,p21,p,u1,u2,w1,w2,a1,a2,b1,b2,li,
      ph1,ph2,ph,px,h1,h2,h,err,err1,err2,
      pdf1,pdf2,pdfjz,pdf,pdf_fnl,
      i;
external proc trans;

prmtr=trans(prmtr1);
p11=prmtr[1,1];p22=prmtr[2,1];u1=prmtr[3,1];u2=prmtr[4,1];
w1=prmtr[5,1];w2=prmtr[6,1];a1=prmtr[7,1];b1=prmtr[8,1];
a2=prmtr[9,1];b2=prmtr[10,1];
li=0;
err1=r-ones(nuber,1)*u1;
err2=r-ones(numer,1)*u2;
p12=1-p11; p21=1-p22;
p=(p11~p12|p21~p22);

@-----------以马氏链的边缘分布代替后验分布的初始值--------@
ph1=(1-p22)/(2-p11-p22);
ph2=(1-p11)/(2-p11-p22);
ph=ph1|ph2;
@-----------对两种不同状态下的条件方差赋初值-------@
h1=w1/(1-a1-b1); h2=w2/(1-a2-b2);

i=2;
do until i>number;
@----------消除条件方差计算中的路径依赖----------@

  h=ph1*(u1^2+h1)+ph2*(u2^2+h2)-(ph1*u1+ph2*u2)^2;
  err=r[i-1,1]-(ph1*u1+ph2*u2);
@----------求每种状态下的条件方差-----------@
  h1=w1+a1*err^2+b1*h;
  h2=w2+a2*err^2+b2*h;
@----------求每种状态下的概率密度函数-------@
  pdf1=-0.5*ln(2*pi*h1)-0.5*err1[i,1]^2/h1;
  pdf1=exp(pdf1);
  pdf2=-0.5*ln(2*pi*h2)-0.5*err2[i,1]^2/h2;
  pdf2=exp(pdf2);
  pdfjz=(pdf1~0|0~pdf2);
@----------求先验概率-------------@
  px=p*ph;
@----------求不依赖于状态的概率密度函数-------@

  pdf=pdfjz*px;
  pdf_fnl=pdf[1,1]+pdf[2,1];
@----------得到新的后验概率----------@
  ph=pdf*(1/pdf_fnl);
  ph1=ph[1,1];
  ph2=ph[2,1];
@----------------------------------------@
  li=li+ln(pdf_fnl);
  i=i+1;
endo;
li=-li;
retp(li);
endp;

proc trans(c0);
  local c1;
   c1=c0;
   c1[1,1]=1/(1+exp(-c0[1,1]));
   c1[2,1]=1/(1+exp(-c0[2,1]));
   c1[7,1]=exp(c0[7,1])/(1+exp(c0[7,1])+exp(c0[8,1]));
   c1[8,1]=exp(c0[8,1])/(1+exp(c0[7,1])+exp(c0[8,1]));
   c1[9,1]=exp(c0[9,1])/(1+exp(c0[9,1])+exp(c0[10,1]));
   c1[10,1]=exp(c0[10,1])/(1+exp(c0[9,1])+exp(c0[10,1]));
  retp(c1);
endp;


proc tran_inv(c0);
  local c1;
    c1=c0;
    c1[1,1]=-ln((1-c0[1,1])/c0[1,1]);
    c1[2,1]=-ln((1-c0[2,1])/c0[2,1]);
    c1[9,1]=ln(c0[9,1]/(1-c0[9,1]-c0[10,1]));
    c1[10,1]=ln(c0[10,1]/(1-c0[9,1]-c0[10,1]));
    c1[7,1]=ln(c0[7,1]/(1-c0[7,1]-c0[8,1]));
    c1[8,1]=ln(c0[8,1]/(1-c0[7,1]-c0[8,1]));  
  retp(c1);
endp;

以上是程序求似然函数的过程,在运行的时候,总是会有这样的提示;“ Nested procedure definition G0155”和“Syntax error G0008 : 'proc trans(c0)' ” 并且软件指示错误出在上面程序中我用红字标示的那一行,但是我看不出问题在哪里也不知道如何修改,希望大家能帮忙看看问题出在哪里,谢谢。

二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-1 13:10:34
楼主的问题解决了吗?也在研究MRS-GARCH模型的问题,楼主有程序的话能发我一份不,邮箱qwqiutian@163.com,不甚感激~~
二维码

扫码加我 拉你入群

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

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

2013-7-1 16:16:47
quyinxiyin 发表于 2013-7-1 13:10
楼主的问题解决了吗?也在研究MRS-GARCH模型的问题,楼主有程序的话能发我一份不,邮箱,不甚感激~~
非常抱歉,我现在手上没程序。
你可以按我上面写的改一下。我当初是程序开头有些错误,但运行时提示错误在最后面。实际上上面的程序应该是对的。我运行出结果了。
二维码

扫码加我 拉你入群

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

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

2013-7-2 10:39:12
syasd 发表于 2013-7-1 16:16
非常抱歉,我现在手上没程序。
你可以按我上面写的改一下。我当初是程序开头有些错误,但运行时提示错误 ...
好的,我试下~~谢谢了~~
二维码

扫码加我 拉你入群

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

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

2013-7-2 16:25:14
quyinxiyin 发表于 2013-7-2 10:39
好的,我试下~~谢谢了~~
这个不是完整的,前面还有调用GAUSS中最优化函数等一些东西,论坛上有KIM的程序,你可以参照着做。我当时也是照葫芦画瓢做的。
二维码

扫码加我 拉你入群

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

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

2013-8-27 12:36:21

程序求助

使用gauss软件编程求解MRS-GARCH模型,运行结果也出现了这样的提示:Line 173 in D:\gauss\bysjcx.opt    Nested procedure definition G0155
Line 173 in D:\gauss\bysjcx.opt
   Syntax error G0008 : 'proc trans(c0)'

不知道问题出在哪里,应该是前面程序的问题
希望楼主能帮忙看下应该怎样修改。附程序和数据:
bysj.rar
大小:(2.68 KB)

 马上下载


谢谢~~
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群