楼主: lqsanjing
4370 5

[求助]请教程序运行错误问题! [推广有奖]

  • 0关注
  • 0粉丝

高中生

40%

还不是VIP/贵宾

-

威望
0
论坛币
251 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1080 点
帖子
19
精华
0
在线时间
27 小时
注册时间
2008-4-22
最后登录
2015-12-3

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

我运行了一个gauss程序,可是却出现了如下错误,望高人予以解答!程序好像是没有问题的,不知道缺少什么东西?我用的是Gauss9.0,是不是缺少一些什么函数或者程序啊?谢谢各位了!急求解答!

Undefined symbols:

    optmum             C:\gauss9.0\prg\Kim's program\5\tvpmrkf.opt(60)

    gradfd              C:\gauss9.0\prg\Kim's program\5\tvpmrkf.opt(71)

[此贴子已经被作者于2009-5-21 22:07:56编辑过]

二维码

扫码加我 拉你入群

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

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

关键词:运行错误 Undefined Program SYMBOLS gauss程序 运行 请教 程序

Just do it!
沙发
lqsanjing 发表于 2009-5-21 22:11:00 |只看作者 |坛友微信交流群

这个是程序(分为了两部分):

/*
@>>>>>>>>>>>>>>>>>>>>Time varying parameter model  >>>>>>>>>>>@
@>>>>>>>>>>>>>>>>>>>>with Markov  Varance  >>>>>>>>>>>>>>>>>>>@
@>>>>>>>>>>>>>>>>>>>>Using Optmum Proc  >>>>>>>>>>>>>>>>>>>>>>@
@ May 9, 1990 version @

cjkim@korea.ac.kr
*/

new;
library optmum,pgraph;


load data[120,6]=tvpmrkf.prn;
     /* column 1: m1===growth rate of quarterly average M1
               2: dint=change in the lagged interest rate (3-month T-bill)
               3: inf==lagged inflation
               4: surp==full employment budget surplus (detrended)
               5: m1lag==lag of m1
               6: quarter index
                 1959.3--1987.4,  ........................ */

          qtr_idx=data[.,6];

T=rows(data);

yy=data[.,1];
xt=ones(t,1)~data[.,2:5];

output file=tvpmrkf.out reset;
output off;
@================= Initialize Global Variables============@


         START=11;    @1962.1--1989.2 @
         PRMTR_NO=9;   @ >>Number of parameters to be estimated. >>@
         TVP_NO=5;     @ >>Number of Time-varying Coefficients   >>@

           pr_1=sqrt(0.2);   pr_2=sqrt(0.2); pr_3=sqrt(0.2);
           pr_4=sqrt(0.2);pr_5=sqrt(0.2);pr_6=sqrt(0.2);
           pr_7=sqrt(1.050);   pr_8=0.9;pr_9=0.9;

                 @initial values of parameters@

         PRMTR_IN=pr_1|pr_2|pr_3|pr_4|pr_5|pr_6|pr_7|pr_8|pr_9;

prmtr_in=0.36072|0.07080|0.079|0.0791|0.070|0.072|0.89439|
         0.93266|0.95990;

output on; "initial values of prmtr is(vre,intcpt,dint,inf,surp,mlag,w,p,q";
                  prmtr_in';

output off;
     PRIOR_CF=zeros(TVP_NO,1);  @Initial values of reg coefs@
     prior_vr=eye(tvp_no)*100;

@ Maximum Likelihood Estimation @
@==================================================@

{xout,fout,gout,hout}=optmum(&lik_fcn,tran_inv(PRMTR_IN));

       @ prmtr estimates, -log lik value, Grandient, Hessian@

          "Calculating Hessian..... Please be patient!!!!";
                  hout0=hessp(&lik_fcn,xout);
                  hout=inv(hessp(&lik_fcn,xout));


PRM_FNL=TRANS(xout);             @ Estimated  coefficients, constrained@

grdn_fnl=gradfd(&TRANS,xout);
Hsn_fnl=grdn_fnl*hout*grdn_fnl';
SD_fnl =sqrt(diag(Hsn_fnl)); @Standard errors of the estimated coefficients@

output on;
"==FINAL OUTPUT========================================================";
"likelihood value is ";; fout;
"Estimated parameters are:";
prm_fnl';
"var-cov matrix is:"; Hsn_fnl;
"Standard errors of parameters are:"; sd_fnl;
"===============================================================";
OUTPUT OFF;

F_SS=SAVE_OUT(xout);
OUTPUT FILE=TVPMRKF.DTA RESET;
F_SS; OUTPUT OFF;

xy(seqa(1,1,rows(f_ss)),f_ss[.,1]);
xy(seqa(1,1,rows(f_ss)),f_ss[.,2:4]);

END;
@========================================================================@
@========================================================================@
PROC LIK_FCN(PRMTR1);

local prmtr, ppr,qpr,aaa,prob__0,prob__1,p_cf_0,p_cf_1, p_vr_0,
      p_vr_1, qq, lik, j_iter, h, pr__0_l,pr__1_l, pst_cf0, pst_cf1,
      pst_vr0, pst_vr1, f_cast0, f_cast1, ss00, ss01, ss10, ss11,
      pr_vl00, pr_vl01, pr_vl10, pr_vl11, pr_val,k_gn00, k_gn01,
      k_gn10, k_gn11, p_cf00, p_cf01, p_cf10, p_cf11, p_vr00, p_vr01,
      p_vr10, p_vr11, pro_00, pro_01, pro_10, pro_11, likv;

EXTERNAL PROC TRANS, V_PROB;


PRMTR=TRANS(PRMTR1);
PPR=PRMTR[8,1];    @Pr[St=1/St-1=1]@
QPR=PRMTR[9,1];    @Pr[St=0/St-1=0]@

AAA=EYE(TVP_NO);

@>>>>>>>>>>>>>>>>>>>>>>>>>  INITIAL PROB. Pr[S0/Y0] @

        PROB__1=(1-QPR)/(2-PPR-QPR);   @Pr[St-1=1/Yt-1], STEADY STATE PROB.@
        PROB__0=1-PROB__1  ;           @Pr[ST-1=0/Yt-1], STEADY STATE PROB @


P_CF_0=PRIOR_CF; P_CF_1=PRIOR_CF;
P_VR_0=PRIOR_VR; P_VR_1=PRIOR_VR; @ Initial values@

QQ=(PRMTR[2,1]^2~0~0~0~0)|
   (0~PRMTR[3,1]^2~0~0~0)|
   (0~0~PRMTR[4,1]^2~0~0)|
   (0~0~0~PRMTR[5,1]^2~0)|
   (0~0~0~0~PRMTR[6,1]^2);

LIKV=0.0;
J_ITER = 1;
DO UNTIL J_ITER>T;

H=xt[J_ITER,.];

        PR__0_L= QPR*PROB__0 + (1-PPR)*PROB__1;     @Pr[St=0/Yt-1]@
    PR__1_L= (1-QPR)*PROB__0 + PPR*PROB__1;     @Pr[St=1/Yt-1]@


@===================PREDICTION=============================@
PST_CF0 = AAA * P_CF_0;                   @ Prediction of coef when St-1=0 @
PST_CF1=AAA*P_CF_1;

PST_VR0 = AAA * P_VR_0 * AAA' +QQ;
PST_VR1 = AAA * P_VR_1 * AAA' +QQ;

F_CAST0 = yy[J_ITER,.] - H * PST_CF0;      @ Forecast error when St-1=0 @
F_CAST1 = yy[J_ITER,.] - H * PST_CF1;      @ Forecast error when St-1=0 @

SS00= H * PST_VR0 * H' + PRMTR[1,1]^2;              @ St-1=0,St=0 @
SS01= H*  PST_VR0 * H' + PRMTR[7,1]^2; @ St-1=0,St=1 @
SS10= H * PST_VR1 * H' + PRMTR[1,1]^2;              @ St-1=1,St=0 @
SS11= H * PST_VR1 * H' + PRMTR[7,1]^2; @ St-1=1,St=1 @


@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@
PR_VL00=V_PROB(F_CAST0,SS00)*    QPR*PROB__0;         @Pr[St,Yt/Yt-1]@
PR_VL01=V_PROB(F_CAST0,SS01)*(1-QPR)*PROB__0;
PR_VL10=V_PROB(F_CAST1,SS10)*(1-PPR)*PROB__1;
PR_VL11=V_PROB(F_CAST1,SS11)*    PPR*PROB__1;

PR_VAL=PR_VL00+PR_VL01+PR_VL10+PR_VL11;           @Pr[Yt/Yt-1]@
@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@


LIK=-1*LN(PR_VAL);


@=======================UPDATING===============================@
K_GN00 =PST_VR0 * H' / SS00;
K_GN01 =PST_VR0 * H' / SS01;
K_GN10 =PST_VR1 * H' / SS10;
K_GN11 =PST_VR1 * H' / SS11;

P_CF00 = PST_CF0 + K_GN00 * F_CAST0;
P_CF01 = PST_CF0 + K_GN01 * F_CAST0;
P_CF10 = PST_CF1 + K_GN10 * F_CAST1;
P_CF11 = PST_CF1 + K_GN11 * F_CAST1;

P_VR00 = (EYE(TVP_NO) - K_GN00 * H ) * PST_VR0;
P_VR01 = (EYE(TVP_NO) - K_GN01 * H ) * PST_VR0;
P_VR10 = (EYE(TVP_NO) - K_GN10 * H ) * PST_VR1;
P_VR11 = (EYE(TVP_NO) - K_GN11 * H ) * PST_VR1;

@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@
        PRO_00=PR_VL00/PR_VAL;                    @Pr[St,St-1/Yt]@
        PRO_01=PR_VL01/PR_VAL;
        PRO_10=PR_VL10/PR_VAL;
        PRO_11=PR_VL11/PR_VAL;

        PROB__0=PRO_00+PRO_10;         @Pr[St=0/Yt]@
        PROB__1=PRO_01+PRO_11;         @Pr[St=1/Yt]@
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@

P_CF_0=(PRO_00*P_CF00 + PRO_10*P_CF10)/PROB__0;
P_CF_1=(PRO_01*P_CF01 + PRO_11*P_CF11)/PROB__1;

P_VR_0=(PRO_00*(P_VR00+(P_CF_0-P_CF00)*(P_CF_0-P_CF00)')+
        PRO_10*(P_VR10+(P_CF_0-P_CF10)*(P_CF_0-P_CF10)'))/PROB__0;

P_VR_1=(PRO_01*(P_VR01+(P_CF_1-P_CF01)*(P_CF_1-P_CF01)')+
        PRO_11*(P_VR11+(P_CF_1-P_CF11)*(P_CF_1-P_CF11)'))/PROB__1;


IF J_ITER < START; goto skip; endif;
LIKV = LIKV+LIK;
skip:  J_ITER = J_ITER+1;
ENDO;

RETP(LIKV);
ENDP;

Just do it!

使用道具

藤椅
lqsanjing 发表于 2009-5-21 22:12:00 |只看作者 |坛友微信交流群

PROC SAVE_OUT(PRMTR1);

local prmtr, ppr,qpr,aaa,prob__0,prob__1,p_cf_0,p_cf_1, p_vr_0,
      p_vr_1, qq, lik, j_iter, h, pr__0_l,pr__1_l, pst_cf0, pst_cf1,
      pst_vr0, pst_vr1, f_cast0, f_cast1, ss00, ss01, ss10, ss11,
      pr_vl00, pr_vl01, pr_vl10, pr_vl11, pr_val,k_gn00, k_gn01,
      k_gn10, k_gn11, p_cf00, p_cf01, p_cf10, p_cf11, p_vr00, p_vr01,
      p_vr10, p_vr11, pro_00, pro_01, pro_10, pro_11, likv,cf,vr,
      DTA_MAT, SS,S1,S2,f_cast;

EXTERNAL PROC TRANS, V_PROB;

PRMTR=TRANS(PRMTR1);

DTA_MAT=ZEROS(T,4);

PPR=PRMTR[8,1];    @Pr[St=1/St-1=1]@
QPR=PRMTR[9,1];    @Pr[St=0/St-1=0]@

AAA=EYE(TVP_NO);

@>>>>>>>>>>>>>>>>>>>>>>>>>  INITIAL PROB. Pr[S0/Y0] @

        PROB__1=(1-QPR)/(2-PPR-QPR);   @Pr[St-1=0/Yt-1], STEADY STATE PROB.@
        PROB__0=1-PROB__1  ;           @Pr[ST-1=1/Yt-1], STEADY STATE PROB @


P_CF_0=PRIOR_CF; P_CF_1=PRIOR_CF;
P_VR_0=PRIOR_VR; P_VR_1=PRIOR_VR; @ Initial values@

QQ=(PRMTR[2,1]^2~0~0~0~0)|(0~PRMTR[3,1]^2~0~0~0)|(0~0~PRMTR[4,1]^2~0~0)|
   (0~0~0~PRMTR[5,1]^2~0)|(0~0~0~0~PRMTR[6,1]^2);


LIKV=0.0;

J_ITER = 1;
DO UNTIL J_ITER>T;

H=xt[J_ITER,.];

        PR__0_L= QPR*PROB__0 + (1-PPR)*PROB__1;     @Pr[St=0/Yt-1]@
        PR__1_L= (1-QPR)*PROB__0 + PPR*PROB__1;     @Pr[St=1/Yt-1]@


@===================PREDICTION=============================@
PST_CF0 = AAA * P_CF_0;                   @ Prediction of coef when St-1=0 @
PST_CF1=AAA*P_CF_1;                    @Prediction of coef when St-1=1 @

          cf=prob__0*pst_cf0 +prob__1*pst_cf1;
                                      @Estimate of coefs based on past info@

@          cf=pr__0_l*pst_cf0 +pr__1_l*pst_cf1;@


PST_VR0 = AAA * P_VR_0 * AAA' +QQ;
PST_VR1 = AAA * P_VR_1 * AAA' +QQ;

          vr=  prob__0*(pst_vr0+ (cf-pst_cf0)*(cf-pst_cf0)')
         + prob__1*(pst_vr1+ (cf-pst_cf1)*(cf-pst_cf1)');

@   vr=  pr__0_l*(pst_vr0+ (cf-pst_cf0)*(cf-pst_cf0)')
         + pr__1_l*(pst_vr1+ (cf-pst_cf1)*(cf-pst_cf1)');@

@vr=> variance covariance matrix of coef(cf) calculated based on
past information only.  @

F_CAST0 = yy[J_ITER,.] - H * PST_CF0;      @ Forecast error when St-1=0 @
F_CAST1 = yy[J_ITER,.] - H * PST_CF1;      @ Forecast error when St-1=0 @


@           f_cast= pr__0_l*F_CAST0+ pr__1_l*F_CAST1;@
           f_cast= prob__0*F_CAST0+ prob__1*F_CAST1;
   SS = H * vr * H' + (prmtr[1,1]^2 +(prmtr[7,1]^2-prmtr[1,1]^2)* pr__1_L);

DTA_MAT[j_iter,.]=f_cast~  ss ~ (h*vr*h')~
                (prmtr[1,1]^2+(prmtr[7,1]^2-prmtr[1,1]^2)*pr__1_l);

SS00= H * PST_VR0 * H' + PRMTR[1,1]^2;              @ St-1=0,St=0 @
SS01= H*  PST_VR0 * H' + PRMTR[7,1]^2; @ St-1=0,St=1 @
SS10= H * PST_VR1 * H' + PRMTR[1,1]^2;              @ St-1=1,St=0 @
SS11= H * PST_VR1 * H' + PRMTR[7,1]^2; @ St-1=1,St=1 @

@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@
PR_VL00=V_PROB(F_CAST0,SS00)*    QPR*PROB__0;         @Pr[St,Yt/Yt-1]@
PR_VL01=V_PROB(F_CAST0,SS01)*(1-QPR)*PROB__0;
PR_VL10=V_PROB(F_CAST1,SS10)*(1-PPR)*PROB__1;
PR_VL11=V_PROB(F_CAST1,SS11)*    PPR*PROB__1;

PR_VAL=PR_VL00+PR_VL01+PR_VL10+PR_VL11;           @Pr[Yt/Yt-1]@
@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@

@=======================UPDATING===============================@
K_GN00 =PST_VR0 * H' / SS00;
K_GN01 =PST_VR0 * H' / SS01;
K_GN10 =PST_VR1 * H' / SS10;
K_GN11 =PST_VR1 * H' / SS11;

P_CF00 = PST_CF0 + K_GN00 * F_CAST0;
P_CF01 = PST_CF0 + K_GN01 * F_CAST0;
P_CF10 = PST_CF1 + K_GN10 * F_CAST1;
P_CF11 = PST_CF1 + K_GN11 * F_CAST1;

P_VR00 = (EYE(TVP_NO) - K_GN00 * H ) * PST_VR0;
P_VR01 = (EYE(TVP_NO) - K_GN01 * H ) * PST_VR0;
P_VR10 = (EYE(TVP_NO) - K_GN10 * H ) * PST_VR1;
P_VR11 = (EYE(TVP_NO) - K_GN11 * H ) * PST_VR1;

@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@
        PRO_00=PR_VL00/PR_VAL;                    @Pr[St,St-1/Yt]@
        PRO_01=PR_VL01/PR_VAL;
        PRO_10=PR_VL10/PR_VAL;
        PRO_11=PR_VL11/PR_VAL;

        PROB__0=PRO_00+PRO_10;         @Pr[St=0/Yt]@
        PROB__1=PRO_01+PRO_11;         @Pr[St=1/Yt]@
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@

P_CF_0=(PRO_00*P_CF00 + PRO_10*P_CF10)/PROB__0;
P_CF_1=(PRO_01*P_CF01 + PRO_11*P_CF11)/PROB__1;

P_VR_0=(PRO_00*(P_VR00+(P_CF_0-P_CF00)*(P_CF_0-P_CF00)')+
        PRO_10*(P_VR10+(P_CF_0-P_CF10)*(P_CF_0-P_CF10)'))/PROB__0;

P_VR_1=(PRO_01*(P_VR01+(P_CF_1-P_CF01)*(P_CF_1-P_CF01)')+
        PRO_11*(P_VR11+(P_CF_1-P_CF11)*(P_CF_1-P_CF11)'))/PROB__1;

skip:  J_ITER = J_ITER+1;
ENDO;


RETP(DTA_MAT[start:t,.]~qtr_idx[start:t,.]);
ENDP;

@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@
PROC TRANS(coef0); @ constraining values of reg. coeff.@
   local coef1,m,u;

   coef1=coef0;

   coef1[8:9,.]=1./ (1+exp(-1*coef0[8:9,.]));

   retp(coef1);
endp;

PROC TRAN_INV(coef0);
    local coef1,m,u;

    coef1=coef0;

    coef1[8:9,.]=-1*ln((1-coef0[8:9,.]) ./ (coef0[8:9,.]));

    retp(coef1);
endp;
@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@


@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@
PROC V_PROB(EV, HE);      @ CALCULATES    Pr[Yt/St,Yt-1]@
LOCAL VAL;
VAL=(1/SQRT(2*PI*HE))*EXP(-0.5*EV*EV/HE);
RETP(VAL);
ENDP;
@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@

Just do it!

使用道具

板凳
xuehe 发表于 2009-5-22 12:14:00 |只看作者 |坛友微信交流群

使用道具

报纸
xuehe 发表于 2009-5-22 12:19:00 |只看作者 |坛友微信交流群

328217.rar (32.28 KB)

需要消耗时间慢慢找了,再试验

使用道具

地板
xuelida 在职认证  发表于 2009-5-22 23:41:00 |只看作者 |坛友微信交流群

没有数据,以及一些.src文件最容易出问题。

希望大家使用7.0版,在运行下载的软件,最好先把程序读懂,否则问题你解决不了

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

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

GMT+8, 2024-4-28 00:14