搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  bysj.rar
资料下载链接地址: https://bbs.pinggu.org/a-1398348.html
附件大小:
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)' ” 并且软件指示错误出在上面程序中我用红字标示的那一行,但是我看不出问题在哪里也不知道如何修改,希望大家能帮忙看看问题出在哪里,谢谢。



    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

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

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

GMT+8, 2026-1-19 02:05