我跑指令後出現d:\gauss\src\optutil.src(1595):error G0520:argument not conformable
可是我找不到到底哪裡錯了
跪求各位大大幫忙><
new;
library optmum;
format /m1 /rd 17,7;
n=10460;
load data[n,17]=D:\final.txt;
y=data[1:n,6];
x1=data[1:n,8];x2=data[1:n,9];x3=data[1:n,10];x4=data[1:n,11];x5=data[1:n,12];
z1=data[1:n,14];z2=data[1:n,17];z3=data[1:n,13];z4=data[1:n,7];z5=data[1:n,16];
at=data[1:n,4]; da=data[1:n,2]; disp=data[1:n,15];
T=rows(y);
@=================================================================@
START=1; @1993.....@
c1= .1324215 ; @ Const1 @
c2= -.0000593 ; @ pe @
c3=.0123564 ; @ booktomarket @
c4=-.1677171 ; @ cp @
c5=.1027254 ; @ leverageratio @
c6= .0038986 ; @ dividendratio @
c7=.3295745 ; @ cont2 @
c8=-.0261669 ; @ y_lag @
c9=-.0184147 ; @ tradevolume @
c10=.0087584 ; @ stockturnover @
c11=.7689457 ; @ marketreturn @
c12=.0266911 ; @ marketturnover @
c13=0 ; @ p0 @
c14= 0 ; @ at @
c15= 0 ; @ da @
C16= 0 ; @ dispersion @
PRMTR_IN=c1~c2~c3~c4~c5~c6~c7~c8~c9~c10~c11~c12~c13~c14~c15~c16;
PRMTR_IN=PRMTR_IN';
@ Maximum Likelihood Estimation @
@==================================================@
{xout,fout,gout,cout}=optmum(&lik_fcn,PRMTR_in);
PRM_FNL=TRANS(xout); @ Estimated coefficients, constrained@
"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 file=D:\Gprog\Bankpt\output\Hybrid\Hybrid2.lik reset; -1*fout; output off;
output file=D:\Gprog\Bankpt\output\Hybrid\Hybrid2.est reset; prm_fnl; output off;
output file=D:\Gprog\Bankpt\output\Hybrid\Hybrid2.sdv reset; sd_fnl; output off;
@===The default probability calculation ================@
Cont1=PRM_FNL[1,1];
b1=PRM_FNL[2,1];
b2=PRM_FNL[3,1];
b3=PRM_FNL[4,1];
b4=PRM_FNL[5,1];
b5=PRM_FNL[6,1];
Cont2=PRM_FNL[7,1];
m1=PRM_FNL[8,1];
m2=PRM_FNL[9,1];
m3=PRM_FNL[10,1];
m4=PRM_FNL[11,1];
m5=PRM_FNL[12,1];
p0=PRM_FNL[13,1];
p1=PRM_FNL[14,1];
p2=PRM_FNL[15,1];
p3=PRM_FNL[16,1];
default=zeros(T,1);prob1=zeros(T,1);prob2=zeros(T,1);
i=1;
do until i>10460;
qualt1=cont1+b1*x1[i,1]+b2*x2[i,1]+b3*x3[i,1]+b4*x4[i,1]+b5*x5[i,1];
Default1=1/(1+EXP(-qualt1));
qualt2=cont2+m1*z1[i,1]+m2*z2[i,1]+m3*z3[i,1]+m4*z4[i,1]+m5*z5[i,1];
Default2=1/(1+EXP(-qualt2));
Prob1[i,1]=EXP(p0+p1*at[i,1]+p2*da[i,1]+p3*disp[i,1])/(1+EXP(p0+p1*at[i,1]+p2*da[i,1]+p3*disp[i,1]));
Prob2[i,1]=1-Prob1[i,1];
Default[i,1]=Prob1[i,1]*Default1+Prob2[i,1]*Default2;
i=i+1;
endo;
output file=D:\Gprog\Bankpt\output\Hybrid\Hybrid2.dft reset; default; output off;
output file=D:\Gprog\Bankpt\output\Hybrid\Hybrid2.wet.pob reset; Prob1~Prob2; output off;
end;
@ end OF MAIN PROGRAM @
@========================================================================@
@========================================================================@
PROC LIK_FCN(PRMTR1);
local prmtr,ppr,qpr,pr_vl,pr_val,likv,lik,pr_tr,prob_t,prob_dd,A,
EN,i,tmp,pr_stt0,pr_stl0,PAI,e,pr_trf,prob_,a0,a1,b0,b1,g1,
g2,pro_,VAR,b2,pr_trf0,u0,u1,VAR_pre,MEAN_pre,
Resd_pre,Resd_filt,VAR_fil,cont,h1,h2,c,d,
cont_a,cont_u,h1_a,h1_u,h2_a,h2_u,a_a,a_u,
b_a,b_u,g2_a,g2_u,g1_a,g1_u,cor1,cor2,
ADR_h,UND_h, V, ADR_e, UND_e, PDF1,PDF2,PDF3,PDF4,PDF,COV,
gama_aa,gama_au, gama_uu, gama_ua,p0,q0,p1,q1, b3,b4,b5,m1,m2,p2,p3,m3,m4,m5,Cont1,Cont2,default,
qualt1, qualt2, prob1, prob2, qualt,g, default1, default2, p4;
PRMTR=TRANS(PRMTR1);
LOCATE 16,1; PRMTR';
/* DEFINE PARAMETERS */
Cont1=PRMTR[1,1];
b1=PRMTR[2,1];
b2=PRMTR[3,1];
b3=PRMTR[4,1];
b4=PRMTR[5,1];
b5=PRMTR[6,1];
Cont2=PRMTR[7,1];
m1=PRMTR[8,1];
m2=PRMTR[9,1];
m3=PRMTR[10,1];
m4=PRMTR[11,1];
m5=PRMTR[12,1];
p0=PRMTR[13,1];
p1=PRMTR[14,1];
p2=PRMTR[15,1];
p3=PRMTR[16,1];
default=zeros(T,1);prob1=zeros(T,1);prob2=zeros(T,1);
LIKV=0;
i=1;
do until i>10460;
qualt1=cont1+b1*x1[i,1]+b2*x2[i,1]+b3*x3[i,1]+b4*x4[i,1]+b5*x5[i,1];
Default1=1/(1+EXP(-qualt1));
qualt2=cont2+m1*z1[i,1]+m2*z2[i,1]+m3*z3[i,1]+m4*z4[i,1]+m5*z5[i,1];
Default2=1/(1+EXP(-qualt2));
Prob1[i,1]=EXP(p0+p1*at[i,1]+p2*da[i,1]+p3*disp[i,1])/(1+EXP(p0+p1*at[i,1]+p2*da[i,1]+p3*disp[i,1]));
Prob2=1-Prob1;
Default=Prob1*Default1+Prob2*Default2;
g= y[i,1];
if g>0;
LIK=-1*ln(Default+0.0000000000000001);
else;
LIK=-1*ln(1-Default+0.0000000000000001);
endif;
LIKV = LIKV+LIK;
i=i+1;
ENDO;
LOCATE 2,35;"LIKV=";;LIKV;
RETP(LIKV);
ENDP;
@++++++++++++++++++++++++++++++++++++++++++++++++++++++++@
@++++++++++++++++++++++++++++++++++++++++++++++++++++++++@
PROC TRANS(c0); @ constraining values of reg. coeff.@
local c1,m,u,d1,d2,d3,d4,d5,d6;
c1=c0;
retp(c1);
endp;