rastila 发表于 2012-5-31 23:00 
Hessian matrix 不正定,说明这里有identification的问题,估计结果大多数情况下都是错的。因为估计的参数太 ...
那我是应该继续调整参数数值,还是要缩减参数的个数呢?我参数赋值做stoch的时候,r做出来的稳态值有点高,r是利率,应该做出来的稳态值是为1以下的啊,我做出来却在4以上。。。
var y c k i l z g ex f ms r;
varexo e_z e_g e_f e_ms e_ex;
parameters beta psi delta alpha rho_z rho_ms rho_g rho_f rho_ex eta_f eta_g k2 h2;
%----------------------------------------------------------------
% 2. Calibration
%----------------------------------------------------------------
alpha = 0.355;
beta = 0.991;
delta = 0.05;
psi = 2;
rho_z = 0.95;
sigma = (0.007/(1-alpha));
rho_ms = 0.97;
rho_f =0.67;
rho_ex=0.673;
rho_g=0.67;
eta_f=2;
eta_g=0.7;
k2=0.1;
h2=0.02;
%----------------------------------------------------------------
% 3. Model
%----------------------------------------------------------------
model;
(1/c) = beta*(1/c(+1))*(1+alpha*(k^(alpha-1))*(exp(z(+1))*l(+1))^(1-alpha)-delta);
psi*c/(1-l) = (1-alpha)*(k(-1)^alpha)*(exp(z)^(1-alpha))*(l^(-alpha));
y+ms-ms(-1)=c+i+g+ex;
y = (k(-1)^alpha)*(exp(z)*l)^(1-alpha);
i = k-(1-delta)*k(-1);
ms=rho_ms*ms(-1)+eta_g*e_g+eta_f*e_f+e_ms;
ms=k2*y-h2*r;
z = rho_z*z(-1)+e_z;
g = rho_g*g(-1)+e_g;
f = rho_f*f(-1)+e_f;
ex = rho_ex*ex(-1)+e_ex;
end;
%----------------------------------------------------------------
% 4. Computation
%----------------------------------------------------------------
initval;
k = 5;
c = 0.6;
l = 0.3;
z = 0;
r=0.04;
e_z = 0;
e_f =0;
e_g=0;
e_ex=0;
end;
shocks;
var e_z = sigma^2;
var e_g = sigma^2;
var e_f= sigma^2;
var e_ex= sigma^2;
end;
steady;
stoch_simul(hp_filter = 1600, order=1,periods=20000,nograph);
varobs f ms ex c;
estimated_params;
beta, beta_pdf, 0.99, 0.002;
alpha, beta_pdf, 0.355, 0.002;
delta, beta_pdf, 0.05, 0.002;
rho_z, normal_pdf, 0.95, 0.002;
psi,gamma_pdf, 2, 0.002;
rho_ms, beta_pdf, 0.97 , 0.002;
rho_f, beta_pdf, 0.7, 0.002;
rho_ex, beta_pdf, 0.7, 0.002;
rho_g, beta_pdf, 0.7, 0.002;
eta_f, normal_pdf, 2 , 0.05;
eta_g, normal_pdf, 0.7, 0.002;
k2, normal_pdf, 0.1, 0.002;
h2, gamma_pdf, 0.02,0.05;
end;
estimation(datafile=ccc) f ms ex c;