楼主: yancheng54
12498 57

新手问三个问题 [推广有奖]

31
yancheng54 发表于 2010-5-4 13:00:41
谢谢版主!!!! 19# xuehe

32
yancheng54 发表于 2010-5-10 23:11:16
新问题一,初值如何根据设置,是不是由于初值的原因可能导致程序运行一半报错说矩阵非奇异。关于这方面有没有连接烦请给一个。

新问题二,运行的时候好几张图片蹦出来,前面的图片往往被最后一张覆盖掉,请问怎么调出前面的图片来看或者让它一张张出

新问题三,在带马尔科夫机制转换的ar模型中如何确定ar的阶数和马尔科夫状态数。这个我知道问太笼统了,自己慢慢研究。呵呵。

33
xuehe 发表于 2010-5-11 01:32:13
初值需要你自己不断试验。
图片你要写句子,让它输出在你的文件夹。
根据AIC等准则,看资料。

34
yancheng54 发表于 2010-5-14 17:01:03
请问我估计出来的参数为啥有两排,虽然部分参数一样。

在一个,code也就是cout为0是啥意思。
==FINAL OUTPUT========================================================
initial values of prmtr is
  0.9630   0.0000   0.0096   0.9904   0.0000   0.0106   0.0187   0.0012
  4.6303   1.3976   6.0466  -1.5760   1.3765   3.9928
==============================================================
code is--------  0.0000
likelihood value is -641.9774
Estimated parameters are:
  0.9885   0.0000   0.0628   0.9372   0.0000   0.0831   0.1809   0.0933
  8.3440   3.3096  10.0747   0.6100   3.1639   8.2711
  
  4.4543 -12.2225  10.6617  13.3653 -22.4332  -2.4014   0.1809   0.0933
  2.8886   1.8192   3.1741   0.6100   3.1639   8.2711
Standard errors of parameters are:
  0.0088               0.0000 +   0.0000i   0.0435            
  0.0435               0.0000               0.0608            
  0.0664               0.0677               0.9873            
  0.9685               3.0200               0.3027            
  0.5372               0.9395            
===============================================================

35
xuehe 发表于 2010-5-14 21:04:29
你这样写,也不知道是用的什么程序,可以拿出来,网友一起讨论研究。而不鼓励贴个结果,让别人不知道所云。

36
yancheng54 发表于 2010-5-14 21:19:26
就还是那本书里的程序,第四章第一个,intr_s3,我试着用别的参数。程序如下:/*@WRITTEN BY CHANG-JIN KIM, KOREA UNIVERSITY, DEPT. OF ECONcjkim@korea.ac.kr  @*/new;library optmum,PGRAPH;optset;#lineson;format /m1 /rd 12,6;load data[176,3]=int_cpuq.prn;  @qtr, T-bill (ann), CPU @                              @1947.1 -- 1990.4, quarterly data, end-month                  of the quarter  @qtr=data[2:176,1];ex_r=data[2:176,2];inf=ln(data[2:176,3]./data[1:175,3])*100*4;yy0=ex_r[52-2:175,1]-inf[52-2:175,1];   @60.I -- 90.IV@                                        @159@t0=rows(yy0);yy_d=yy0[2:t0]-yy0[1:t0-1];LAG_AR=2;NO_ST=lag_ar+1; @ NUMBER OF STATES TO BE CONSIDERED@DMNSION=3^NO_ST;st_mat=zeros(DMNSION,NO_ST);       j=1;       st2=1; do until st2>3;       st1=1; do until st1>3;       st=1; do until st>3;          st_mat[j,.]=st2~st1~st;       j=j+1;       st=st+1;endo;       st1=st1+1;endo;       st2=st2+1;endo;       s1t_mat=zeros(DMNSION,NO_ST);       s2t_mat=zeros(DMNSION,NO_ST);       s3t_mat=zeros(DMNSION,NO_ST);       j=1; do until j>dmnsion;       i=1; do until i>no_st;          if     st_mat[j,i]==1; s1t_mat[j,i]=1;endif;       i=i+1;endo;       j=j+1;endo;       j=1; do until j>dmnsion;       i=1; do until i>no_st;          if     st_mat[j,i]==2; s2t_mat[j,i]=1;endif;       i=i+1;endo;       j=j+1;endo;       j=1; do until j>dmnsion;       i=1; do until i>no_st;          if     st_mat[j,i]==3; s3t_mat[j,i]=1;endif;       i=i+1;endo;       j=j+1;endo;yy=yy0[lag_ar+1:t0,1];x_mat=   yy0[Lag_ar:T0-1,1]~yy0[lag_ar-1:T0-2,1];T=rows(yy);@================= Initialize Global Variables======1959.1-89.9======@           START=1;  @1952:4.....@PRMTR_IN={    3.259933   -12.222394     9.695514    14.331286   -22.433174    -4.539383    0.018705     0.001239     2.151802     1.182220     2.458978    -1.576000    1.376510     3.992844};   @converged parameters@PRMTR_IN=PRMTR_IN';@ Maximum Likelihood Estimation @@==================================================@{xout,fout,gout,cout}=optmum(&lik_fcn,PRMTR_in);PRM_FNL=TRANS(xout);             @ Estimated  coefficients, constrained@output file=INTR_S3.out reset;"==FINAL OUTPUT========================================================";"initial values of prmtr is";                  trans(prmtr_in)';"==============================================================";"code is--------";;cout;"likelihood value is ";; -1*fout;"Estimated parameters are:";prm_fnl'; "  ";xout';output off;"Calculating Hessian..... Please be patient!!!!";                  hout0=hessp(&lik_fcn,xout);                  hout=inv(hout0);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;"Standard errors of parameters are:"; sd_fnl';"===============================================================";output off;{FILTER_P}=FILTER(XOUT);FILTER_P=FILTER_P~YY;format /m1 /rd 8,4;output file=INTr_s3.dta reset; Filter_p; output off;begwind;window(2,2,0);xlabel("month");xindex=seqa(1,1,rows(filter_p));setwind(1);   xy(xindex, filter_p[.,1]);nextwind;   xy(xindex,filter_p[.,2]);nextwind;   xy(xindex,filter_p[.,3]);nextwind;   xy(xindex,filter_p[.,4]~yy);endwind;end;@ END OF MAIN PROGRAM @@========================================================================@@========================================================================@PROC LIK_FCN(PRMTR1);local prmtr, ppr,qpr,prob__0,prob__1,QQ, lik, j_iter,  pr__0_l,pr__1_l,      F_cast, var_L,pr_val,likv,phi,PSIX,      vecp,st,st1,st2,st3,st4,ST5,ST6,ST7,ST8,ST9,ST10,ST11,ST12,ST13,      pr_tr,pr_trf1,pr_trf,prob__t,prob__,pro_,pr_vl,j,psi1,psi2,var_c,      delta0,DELTA1,MU0,MU1,st_k,st_k1,st_k2,st_k3,st_k4,      f_cast1,f_cast2,PR_VL1,PR_VL2,pr_trf7,pr_trf0,      PR_TRF2,PR_TRF3,PR_TRF4,PR_TRF5,PR_TRF6,psic,psiL,      TMPRY1,TMPRY2,SM_PRL,TMP_P0,SM_PR0,JJJ,MU_MAT,D_MAT,FLT_PRN,      F1,F2,TMP00,TMP0,SM_PR00,prob_dd,VAR,A,EN,MU2,MU3;PRMTR=TRANS(PRMTR1);LOCATE 15,1; PRMTR';      PR_TR=(PRMTR[1:2]|1-SUMC(PRMTR[1:2]))~            (PRMTR[3:4]|1-SUMC(PRMTR[3:4]))~            (PRMTR[5:6]|1-SUMC(PRMTR[5:6]));           PHI=PRMTR[7:8,1];           VAR=PRMTR[9:11,1];           MU1=PRMTR[12,1];  @ recession, vs. boom@           MU2=PRMTR[13,1];  @ recession, vs. boom@           MU3=PRMTR[14,1];           VAR_L=VAR[1,1]*S1T_MAT[.,COLS(S1T_MAT)] +                 VAR[2,1]*S2T_MAT[.,COLS(S2T_MAT)] +                 VAR[3,1]*S3T_MAT[.,COLS(S3T_MAT)];           MU_MAT= MU1*S1T_MAT+                   (MU2)*S2T_MAT+  (MU3)*S3T_MAT;        /* FOR UNCONDITIONAL PROBABILITIES */           A = (eye(3)-pr_tr)|ones(1,3);           EN=(0|0|0|1);           PROB__T = INV(A'A)*A'EN;  @PR[S_t=0]|PR[S_t=1], 3x1 UNCONDITIONAL                                                       PROBABILITIES@           PR_TRF0=VEC(PR_TR);           PR_TRF =PR_TRF0|PR_TRF0|PR_TRF0;           PROB__T=VECR(PROB__T~PROB__T~PROB__T).*PR_TRF0;      @3^2 x 1@           PROB__=VECR(PROB__T~PROB__T~PROB__T);                @3^5 x 1@  LIKV=0.0;  J_ITER=1;  DO UNTIL J_ITER>T;   F_CAST1=(YY[J_ITER,1]-X_MAT[J_ITER,.]*PHI)*ONES(DMNSION,1)               -(MU_MAT[.,3]  - MU_MAT[.,2]*PHI[1,1]                              - MU_MAT[.,1]*PHI[2,1]);   PROB_DD=PR_TRF .* PROB__;   PR_VL=(1./SQRT(2.*PI.*VAR_L)).*EXP(-0.5*F_CAST1.*F_CAST1./VAR_L).*PROB_DD;                      @PR[S_t,S_{T-1},S_{T-2},Y_t|Y_{t-1}]@   PR_VAL=SUMC(PR_VL);   LIK=-1*LN(PR_VAL);   PRO_=PR_VL/PR_VAL; @Pr[S_t, S_{t-1},S_{t-2},S_{t-3},S_{t-4} | Y_t]@   PROB__T=PRO_[1:DMNSION/3,1]+PRO_[DMNSION/3+1:DMNSION*2/3,1]+                               PRO_[DMNSION*2/3+1:DMNSION,1];                          @Pr[S_t, S_{t-1},S_{t-2},S_{t-3}| Y_t]@   PROB__=VECR(PROB__T~PROB__T~PROB__T);LIKV = LIKV+LIK;J_ITER = J_ITER+1;ENDO;               LOCATE 2,35;"LIKV=";;LIKV;RETP(LIKV);ENDP;@++++++++++++++++++++++++++++++++++++++++++++++++++++++++@PROC filter(PRMTR1);local prmtr, ppr,qpr,prob__0,prob__1,QQ, lik, j_iter,  pr__0_l,pr__1_l,      F_cast, var_L, pr_val,likv,phi,PSIX,      vecp,st,st1,st2,st3,st4,ST5,ST6,ST7,ST8,ST9,ST10,ST11,ST12,ST13,      pr_tr,pr_trf1,pr_trf,prob__t,prob__,pro_,pr_vl,j,psi1,psi2,var_c,      delta0,DELTA1,MU0,MU1,st_k,st_k1,st_k2,st_k3,st_k4,      f_cast1,f_cast2,PR_VL1,PR_VL2,pr_trf7,pr_trf0,out_mat,tmp,      PR_TRF2,PR_TRF3,PR_TRF4,PR_TRF5,PR_TRF6,psic,psiL,      TMPRY1,TMPRY2,SM_PRL,TMP_P0,SM_PR0,JJJ,MU_MAT,D_MAT,FLT_PRN,      F1,F2,TMP00,TMP0,SM_PR00,prob_dd,VAR,A,EN,MU2,MU3;PRMTR=TRANS(PRMTR1);LOCATE 15,1; PRMTR';      PR_TR=(PRMTR[1:2]|1-SUMC(PRMTR[1:2]))~            (PRMTR[3:4]|1-SUMC(PRMTR[3:4]))~            (PRMTR[5:6]|1-SUMC(PRMTR[5:6]));           PHI=PRMTR[7:8,1];           VAR=PRMTR[9:11,1];           MU1=PRMTR[12,1];  @ recession, vs. boom@           MU2=PRMTR[13,1];  @ recession, vs. boom@           MU3=PRMTR[14,1];           VAR_L=VAR[1,1]*S1T_MAT[.,COLS(S1T_MAT)] +                 VAR[2,1]*S2T_MAT[.,COLS(S2T_MAT)] +                 VAR[3,1]*S3T_MAT[.,COLS(S3T_MAT)];           MU_MAT= MU1*S1T_MAT+                   (MU2)*S2T_MAT+  (MU3)*S3T_MAT;        /* FOR UNCONDITIONAL PROBABILITIES */           A = (eye(3)-pr_tr)|ones(1,3);           EN=(0|0|0|1);           PROB__T = INV(A'A)*A'EN;  @PR[S_t=0]|PR[S_t=1], 3x1 UNCONDITIONAL                                                       PROBABILITIES@           PR_TRF0=VEC(PR_TR);           PR_TRF =PR_TRF0|PR_TRF0|PR_TRF0;           PROB__T=VECR(PROB__T~PROB__T~PROB__T).*PR_TRF0;      @3^2 x 1@           PROB__=VECR(PROB__T~PROB__T~PROB__T);                @3^5 x 1@  out_mat=zeros(t,4);  LIKV=0.0;  J_ITER=1;  DO UNTIL J_ITER>T;   F_CAST1=(YY[J_ITER,1]-X_MAT[J_ITER,.]*PHI)*ONES(DMNSION,1)               -(MU_MAT[.,3]  - MU_MAT[.,2]*PHI[1,1]                              - MU_MAT[.,1]*PHI[2,1]);   PROB_DD=PR_TRF .* PROB__;  @Pr[S_t,....S_{t-4}|Y_{t-1}]@           tmp=prob_dd[1:9]+prob_dd[10:18]+prob_dd[19:27];           tmp=tmp[1:3]+tmp[4:6]+tmp[7:9];    out_mat[j_iter,.]=tmp'~(YY[J_ITER,1]-SUMC(PROB_DD.*F_CAST1));              @Pr[S_t=1|Y_t],Pr[S_t=2|Y_t],Pr[S_t=2|Y_t]@   PR_VL=(1./SQRT(2.*PI.*VAR_L)).*EXP(-0.5*F_CAST1.*F_CAST1./VAR_L).*PROB_DD;                      @PR[S_t,S_{T-1},S_{T-2},S_{T-3},S_{T-4},Y_t|Y_{t-1}]@   PR_VAL=SUMC(PR_VL);   LIK=-1*LN(PR_VAL);   PRO_=PR_VL/PR_VAL; @Pr[S_t, S_{t-1},S_{t-2},S_{t-3},S_{t-4} | Y_t]@   PROB__T=PRO_[1:DMNSION/3,1]+PRO_[DMNSION/3+1:DMNSION*2/3,1]+                               PRO_[DMNSION*2/3+1:DMNSION,1];                          @Pr[S_t, S_{t-1},S_{t-2},S_{t-3}| Y_t]@   PROB__=VECR(PROB__T~PROB__T~PROB__T);LIKV = LIKV+LIK;J_ITER = J_ITER+1;ENDO;               LOCATE 2,35;"LIKV=";;LIKV;RETP(OUT_MAT);ENDP;@++++++++++++++++++++++++++++++++++++++++++++++++++++++++@PROC TRANS(coef0); @ constraining values of reg. coeff.@   local coef1,m,u,XX9,XX10;   coef1=coef0;   coef1[1,1]=exp(coef0[1,1])/(1+exp(coef0[1,1])+exp(coef0[2,1]));   coef1[2,1]=exp(coef0[2,1])/(1+exp(coef0[1,1])+exp(coef0[2,1]));   coef1[3,1]=exp(coef0[3,1])/(1+exp(coef0[3,1])+exp(coef0[4,1]));   coef1[4,1]=exp(coef0[4,1])/(1+exp(coef0[3,1])+exp(coef0[4,1]));   coef1[5,1]=exp(coef0[5,1])/(1+exp(coef0[5,1])+exp(coef0[6,1]));   coef1[6,1]=exp(coef0[6,1])/(1+exp(coef0[5,1])+exp(coef0[6,1]));   coef1[9:11,1]=coef0[9:11,1]^2;/*   coef1[13,1]=abs(coef0[13,1]);   coef1[14,1]=abs(coef0[14,1]);*/   retp(coef1);endp;@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@ 35# xuehe

37
yancheng54 发表于 2010-5-14 21:20:25
乱了,就还是原书的程序,原来的结果是
==FINAL OUTPUT========================================================
initial values of prmtr is
    0.963028     0.000000     0.009605     0.990394     0.000000     0.010567
    0.018705     0.001239     4.630252     1.397644     6.046573    -1.576000
    1.376510     3.992844
==============================================================
code is--------    0.000000
likelihood value is  -254.891071
Estimated parameters are:
    0.963028     0.000000     0.009605     0.990394     0.000000     0.010567
    0.018705     0.001239     4.630252     1.397644     6.046573    -1.576000
    1.376510     3.992844
  
    3.259933   -12.222394     9.695514    14.331286   -22.433174    -4.539383
    0.018705     0.001239     2.151802     1.182220     2.458978    -1.576000
    1.376510     3.992844
Standard errors of parameters are:
    0.032990                     0.000000 -     0.000015i
    0.011877                     0.011878                 
    0.000000 +     0.000000i     0.013528                 
    0.093379                     0.091731                 
    1.263605                     0.290383                 
    1.341487                     0.408036                 
    0.170491                     0.388488

38
yancheng54 发表于 2010-5-14 21:39:07
C:\Users\yancheng\Desktop\intr_s3 china.opt(208) : error G0043 : Not implemented for complex matrices 这个怎么处理。

39
xuehe 发表于 2010-5-15 18:41:15
要么你把程序传上来,一会这,一会那,我们也被搞乱了。上传后,那位有空,帮助想想,因为大家还有别的事情啊。

40
yancheng54 发表于 2010-5-16 10:33:54
39# xuehe

State-Space Models with Regime-Switching.rar
下载链接: https://bbs.pinggu.org/a-637562.html

4.79 KB

本附件包括:

  • INTr_s3.dta
  • INTR_S3.out
  • intr_s3.opt

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-27 07:10