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

附件下载

所在主题:
文件名:  Basics.rar
资料下载链接地址: https://bbs.pinggu.org/a-1096805.html
本附件包括:
  • Basics.doc
附件大小:
146.22 KB   举报本内容
在网上直接下载的源程序,不知道为什么我运行不了。gauss求助程序解释。另求该怎么修改可运行出结果?
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Decomposition of REAL GNP into random walk (stochastic trend) component
vs. stationary (cyclical) component
Model:
y_t = y_{1t} + y_{2t}
Trend: y_{1t}=g_{t-1} + y_{1,t-1} + v_t,v_t -- i.i.d. N(0,sigma_v^2)
g_t = g_{t-1} + w_t w_t -- i.i.d. N(0,sigma_w^2)
Cycle: y_{2t}=phi_1* y_{2,t-1} + phi_2* y_{2,t-2} + u_t,
u_t -- i.i.d. N(0,sigma_u^2)
cjkim@korea.ac.kr
WRITTEN BY C.J. KIM, DEPT. OF ECONOMICS, KOREA UNIVERSITY
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

new;
libraryoptmum, pgraph;——————这是什么意思啊
format /m1 /rd 9,6;
load data[195,1]=gdp4795.prn;@Real GDP 1947.1 - 1995.3; From CITIBASE@

yy= LN(data[1:195,1]);
t=rows(yy);


@ Maximum Likelihood Estimation @

START=21;@1951.I @
prmtr_in={ 22221 };
PRMTR_IN=PRMTR_IN';
@Initial values of the parameters @

{xout,fout,gout,cout}=optmum(&lik_fcn,PRMTR_IN);
@ prmtr estimates, -log lik value, Grandient, code@


prm_fnl=trans(xout);
"Calculating Hessian..... Please be patient!!!!";
hessn0=hessp(&lik_fcn,xout);
cov0=inv(hessn0);
grdn_fnl=gradfd(&TRANS,xout);
cov=grdn_fnl*cov0*grdn_fnl';
SD =sqrt(diag(cov)); @Standard errors of the estimated coefficients@

output file=clrk_uc1.out reset;
"==FINAL OUTPUT========================================================";
"initial values of prmtr is";
trans(prmtr_in)';
"==============================================================";
"likelihood value is ";; -fout;
"code";;cout;
"Estimated parameters are:";
prm_fnl';
XOUT';
"Standard errors of parameters are:"; sd';
OUTPUT OFF;
DATA = filter(xout);
output file=clrk_uc1.dta reset;
yy[start:t]~DATA;
output off;
XY(SEQA(1,1,ROWS(DATA)),YY[START:T,1]~DATA[.,1]);
XY(SEQA(1,1,ROWS(DATA)),DATA[.,2]~zeros(rows(data),1));
XY(SEQA(1,1,ROWS(DATA)),DATA[.,3]);

@ end OF MAIN PROGRAM @
@========================================================================@
@========================================================================@


proc LIK_FCN(PRMTR1);
local SV,SE,F,H,Q,R,BETA_LL,P_LL,BETA_TL,P_TL,BETA_TT,P_TT,vt,ft, VAL,
LIK_MAT,J_ITER, phi1,phi2,vecpll,prmtr,mu,SW;

PRMTR=TRANS(PRMTR1);
LOCATE 20,1;PRMTR';
SV=PRMTR[1,1];@s.e. of the random walk component@
SE=PRMTR[2,1];@s.e. of the AR component@
SW=PRMTR[3,1];
phi1=prmtr[4,1];
phi2=prmtr[5,1];

F=(1~0~0~1)|
(0~phi1~phi2~0)|
(0~1~0~0)|
(0~0~0~1);

H=1~1~0~0;
Q= ZEROS(4,4);
Q[1,1]=SV^2; Q[2,2]=SE^2;Q[4,4]=SW^2;

R= 0;

BETA_LL=0|0|0|0;
P_LL=EYE(4)*100;
LIK_MAT=ZEROS(T,1);
J_ITER = 1;
do until J_ITER>T;
BETA_TL = F * BETA_LL ;
P_TL = F * P_LL * F' + Q;
vt=yy[j_iter,1] - H * BETA_TL ; @prediction error@
ft= H * P_TL * H' + R; @variance of forecast error@

BETA_TT= BETA_TL + P_TL * H' * inv(ft) * vt;
P_TT= P_TL - P_TL * H' * inv(ft) * H * P_TL;
LIK_MAT[J_ITER,1] =-0.5*(LN(2*pi*ft) + vt^2/ft);
BETA_LL=BETA_TT;
P_LL=P_TT;

J_ITER = J_ITER+1;
endo;
VAL =-SUMC(LIK_MAT[START:T]);
LOCATE 2,20;VAL;
retp(VAL);
endp;

@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@
proc FILTER(PRMTR1);
local SV,SE,F,H,Q,R,BETA_LL,P_LL,BETA_TL,P_TL,BETA_TT,P_TT,
vt,ft, VAL, LIK_MAT,J_ITER,
phi1,phi2,vecpll,prmtr,mu,SW,BETA_MAT;
BETA_MAT=ZEROS(T,3);
LIK_MAT=ZEROS(T,1);
PRMTR=TRANS(PRMTR1);
LOCATE 20,1;PRMTR';
SV=PRMTR[1,1];@s.e. of the random walk component@
SE=PRMTR[2,1];@s.e. of the AR component@
SW=PRMTR[3,1];
phi1=prmtr[4,1];
phi2=prmtr[5,1];

F=(1~0~0~1)|
(0~phi1~phi2~0)|
(0~1~0~0)|
(0~0~0~1);

H=1~1~0~0;
Q= ZEROS(4,4);
Q[1,1]=SV^2; Q[2,2]=SE^2;Q[4,4]=SW^2;

R= 0;
BETA_LL=0|0|0|0;@initial value @
P_LL=EYE(4)*100;
J_ITER = 1;
do until J_ITER>T;

BETA_TL = F * BETA_LL ;
P_TL = F * P_LL * F' + Q;
vt=yy[j_iter,1] - H * BETA_TL ;
@prediction error@
ft= H * P_TL * H' + R; @variance of forecast error@

BETA_TT= BETA_TL + P_TL * H' * inv(ft) * vt;
P_TT= P_TL - P_TL * H' * inv(ft) * H * P_TL;

BETA_MAT[J_ITER,.]=BETA_TT[1,1]~BETA_TT[2,1]~BETA_TT[4,1];
BETA_LL=BETA_TT;
P_LL=P_TT;

J_ITER = J_ITER+1;
endo;

retp(BETA_MAT[START:T,.]);
endp;

@================================================================@
proc TRANS(c0); @ constraining values of reg. coeff.@
local c1,d1,d2;
c1=c0;
c1[1:3,.]=exp(-1*c0[1:3,.])/10;
d1=c0[4,1]./(1+abs(c0[4,1]));
d2=c0[5,1]./(1+abs(c0[5,1]));
c1[4,1]=d1+d2;
c1[5,1]= -1* d1*d2 ;

retp(c1);
endp;



请大虾给看看,稍稍指点下,不胜感激。


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

扫码加我 拉你入群

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

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

GMT+8, 2026-1-2 10:34