各位大佬~小弟最近在学习DSGE,得到了中国工业经济的一个dsge代码
不过小弟比较菜 只会使用dynare 小弟发现该代码并不能被matlab中的dynare所识别,故向各位论坛大佬求教,有大佬知道以下程序该如何运行嘛~
感谢中国工业经济对此代码的无私奉献~如需引用,请注明:
庄子罐等:货币政策的宏观经济效应研究:预期与未预期冲击视角
参见在《中国工业经济》网站(http://www.ciejournal.org)附件下载。
附:程序代码
%estimate a flexible model with monetary policy shocks feature an anticipated component and an unanticipated component.
var C R pi I Q K Y Z L r w esp_l esp_c esp_p esp_i esp_w dy dc di dpi dR esp_R;//m v esp_M;
varexo e_Z e_p e_w e_R0 e_l e_i e_c;//e_R4;//e_M0;//e_M3;
parameters b sigma_c sigma_l beta phi delta r_bar C_bar Y_bar I_bar K_bar alpha gamma_p ksai_p gamma_w ksai_w lamda1 lamda2 lamda3 lamda4
rho_R R_bar L_bar w_bar lamda_p lamda_w Z_bar Q_bar rho_l rho_i rho_c rho_Z rho_p rho_w u_bar;//rho_v rho_M ksai1 ksai2 sigma_m;
b=0.6;
sigma_c=1.2;
beta=0.98;
phi=0.2;
delta=0.025;
alpha=0.6;
gamma_p=0.16;
ksai_p=0.8;
ksai_w=0.6;
gamma_w=0.35;
sigma_l=3;
lamda1=0.8;
lamda2=2.6;
lamda3=3;
lamda4=0.6;
lamda_p=0.2;
lamda_w=0.05;
rho_R=0.5;
rho_l=0.5;
rho_i=0.5;
rho_c=0.3;
rho_Z=0.8;
rho_p=0.3;
rho_w=0.4;
//the steady condition
Z_bar=1;
Q_bar=1;
R_bar=1/beta;
r_bar=1/beta -(1-delta);
w_bar=(1-alpha)*(((1+lamda_p)^-1)*Z_bar*((alpha/r_bar)^alpha))^(1/(1-alpha));
Y_bar=((1/(1-b))*(w_bar/(1+lamda_w))^(1/sigma_c)*(Z_bar^(-1)*((1-alpha)*r_bar/(alpha*w_bar))^alpha)^(-sigma_l/sigma_c) )^(1/(1+sigma_l/sigma_c))*(1-delta*Z_bar^(-1)*((1-alpha)*r_bar/(alpha*w_bar))^(alpha-1) )^(-1/(1+sigma_l/sigma_c));
K_bar=Z_bar^(-1)*((1-alpha)*r_bar/(alpha*w_bar))^(alpha-1)*Y_bar;
I_bar=delta*K_bar;
L_bar=((1-alpha)*r_bar/(alpha*w_bar))*K_bar;
C_bar=Y_bar-I_bar;
model(linear);
//the cosumption equation
C=(b/(1+b))*C(-1)+(1/(1+b))*C(1)-((1-b)/((1+b)*sigma_c))*(R-pi(1)+esp_c(1)-esp_c);
//the investment equation
I=(1/(1+beta))*I(-1)+(beta/(1+beta))*I(1)+(phi/(1+beta))*Q+(1/(1+beta))*(beta*esp_i(1)-esp_i);
//the Q equation
Q=(pi(1)-R)+((1-delta)/(1-delta+r_bar))*Q(1)+(r_bar/(1-delta+r_bar))*r(1);
//the capital accumulation equation
K=(1-delta)*K(-1)+delta*I;
//the goods market equlibrium
Y=(C_bar/Y_bar)*C+(I_bar/Y_bar)*I+(K_bar/Y_bar);
//the product technology
Y=Z+alpha*K(-1)+(1-alpha)*L;
//technology shock
Z=rho_Z*Z(-1)+e_Z;
//the labour demand
L=r+K(-1)-w;
//the price equation
pi=(gamma_p/(1+beta*gamma_p))*pi(-1)+(beta/(1+beta*gamma_p))*pi(1)+((1-ksai_p)*(1-beta*ksai_p)/((1+beta*gamma_p)*ksai_p))*(alpha*r+(1-alpha)*w-Z+esp_p);
//the wage equation
w=(beta/(1+beta))*(w(1)+pi(1))-((1+beta*gamma_w)/(1+beta))*pi+(1/(1+beta))*(w(-1)+gamma_w*pi(-1))-((1-ksai_w)*(1-beta*ksai_w)/((1+beta)*ksai_w*(1+sigma_l*(1+lamda_w)/lamda_w)))*
(w-sigma_l*L-(sigma_c/(1-b))*(C-b*C(-1)));
//Taylor rule
R=lamda1*R(-1)+(1-lamda1)*(lamda2*(pi(1)-pi)+lamda3*pi+lamda4*Y)-esp_R;
//MacCullum rule
m=sigma_c*C/(sigma_m*(1-b)) - b*sigma_c*C(-1)/(sigma_m*(1-b)) - R/(sigma_m*(R_bar-1));
//money demand equation
m=m(-1) - pi + v; //money supply
v=rho_v*v(-1) - ksai1*pi(+1) - ksai2*Y+ esp_M; //dynamic of money growth rate
esp_M=rho_M*esp_M(-1) + e_M0;//+e_M3(-3); //money supply shock
//all kinds of shocks equation
esp_R=rho_R*esp_R(-1)+e_R0;//+e_R4(-4);
esp_p=rho_p*esp_p(-1)+e_p;
esp_c=rho_c*esp_c(-1)+e_c;
esp_i=rho_i*esp_i(-1)+e_i;
esp_l=rho_l*esp_l(-1)+e_l;
esp_w=rho_w*esp_w(-1)+e_w;
//measurement equations
dy=Y-Y(-1);
dc=C-C(-1);
di=I-I(-1);
dpi=pi-pi(-1);
dR=R-R(-1);
//dM=M-M(-1);
end;
resid(1);
steady(solve_algo=4);
check;
estimated_params;
ksai_w,BETA_PDF,0.6,0.1;
ksai_p,BETA_PDF,0.8,0.1;
rho_Z,BETA_PDF,0.8,0.1;
lamda1,BETA_PDF,0.75,0.1;
rho_R,BETA_PDF,0.5,0.1;
lamda2,NORMAL_PDF,2.6,0.1;
lamda3,NORMAL_PDF,3,0.1;
lamda4,NORMAL_PDF,0.6,0.1;
//rho_v,BETA_PDF,0.8,0.1;
//rho_M,BETA_PDF,0.75,0.1;
//ksai1,NORMAL_PDF,1.0,0.1;
//ksai2,NORMAL_PDF,0.5,0.1;
stderr e_Z,inv_gamma_pdf,4,inf;
stderr e_R0,inv_gamma_pdf,3,inf;
//stderr e_R4,inv_gamma_pdf,2,inf;
//stderr e_M0,inv_gamma_pdf,3,inf;
//stderr e_M3,inv_gamma_pdf,2,inf;
stderr e_p,inv_gamma_pdf,2,inf;
stderr e_w,inv_gamma_pdf,1,inf;
stderr e_l,inv_gamma_pdf,3,inf;
stderr e_i,inv_gamma_pdf,1,inf;
stderr e_c,inv_gamma_pdf,2,inf;
end;
varobs dy dc di dpi dR;//dM
estimation(datafile=data,mh_nblocks=2,mh_drop=0.5,mh_jscale=0.65,
mode_compute=6,order=1,bayesian_irf,irf=20,mh_replic=2000,forecast=20,mode_check,smoother,nograph)Y C I pi;
stoch_simul;
我甚至都不知道这个程序是不是用matlab运行的~小弟才疏学浅,希望各位大佬给个意见~老板要我把这个程序重新跑出来