//****************************************************************** var da dz dz1 dr lambda cons labor w labor_c w_c r_k R_k pi k k_c i i_c y cp ec mc s N f lambda1 ey gap ; varexo e_a e_z e_z1 e_r; parameters rhoa rhoz rhoz1 rhoy rhopi beta b_c eta eta_c deta deta_c deta_s theta phi alpha1 alpha2 alpha3 beta1 beta2 beta3 piss lambdass ass zss z1ss ; //estimated parameters (maximum likelihood estimates) rhoa = 0.85; //from Ireland, Peter N. "Money's Role In The Monetary Business Cycle,""Journal of Money, Credit and Banking, 2004, v36(6,Dec), 969-983. rhoz = 0.9; // from the above IRELAND 2004 rhoz1 = 0.6; // from the above IRELAND 2004 //rhor = 0.5; rhoy = -0.05; rhopi = 1.1; //rhov = 0.9; //************************************************************************** b_c = 0.5; // from IRELAND 2011 deta = 0.02; deta_c = 0.02; deta_s = 0.02; // from Argentiero et al.2018 theta = 6.5; phi = 20.9; //************************************************************************** //calibrated parameters beta=0.99; eta = 1.97; eta_c = 1.97; //************************************************************************** alpha1 = 0.79; alpha2 = 0.13; alpha3 = 1-alpha1-alpha2; //************************************************************************** beta1 = 0.19; // from Argentiero et al.2018 beta2 = 0.5; // from Argentiero et al.2018 beta3 = 1-beta1-beta2; // from Argentiero et al.2018 //************************************************************************** lambdass = 1; piss = 1.03; ass = 1; zss = 1; z1ss = 1; //************************************************************************** model; // exgenous shock da = rhoa*da(-1) + e_a; //(1) dz = rhoz*dz(-1) + e_z; //(2) dz1 = rhoz*dz1(-1) + e_z1; //(3) dr = dr(-1) + rhoy*log(y/y(-1)) + rhopi*log(pi/piss) + e_r; //from Ireland(2011), (4) //household utility lambda = exp(da)/ (cons-b_c*cons(-1)) - beta*b_c*exp(da(+1))/(cons(+1)-b_c*cons); //(5) labor^eta = lambda*w/exp(da); //(6) labor_c^eta_c = lambda*w_c/exp(da); //(7) lambda = beta*exp(dr)*lambda(+1)/pi(+1); //(8) lambda = beta*(lambda(+1)*r_k(+1) + lambda(+1)*(1-deta)); //(9) lambda = beta*(lambda(+1)*R_k(+1) + lambda(+1)*(1-deta_c)); //(10) // investment decision k = (1-deta)*k(-1) + i; //(11) k_c = (1-deta_c)*k_c(-1) + i_c; //(12) //intermidiate firm y = (exp(dz)*labor)^alpha1 * k(-1)^alpha2 * ec^alpha3; //(13) mc = (w^alpha1*r_k^alpha2*cp^alpha3)/(exp(dz)^alpha1*(alpha1^alpha1)*(alpha2^alpha2)*(alpha3^alpha3)); //(14) (theta-1)/phi= theta*mc/phi - pi/piss*(pi/piss-1) + beta*(lambda(+1)*pi(+1)*y(+1)/(lambda*piss*y)*(pi/piss-1)); //(15) k(-1) = y*mc*alpha2*(1-phi/2*(pi/piss-1)^2)/r_k; //(16) labor = y*mc*alpha1*(1-phi/2*(pi/piss-1)^2)/w; //(17) ec = y*mc*alpha3*(1-phi/2*(pi/piss-1)^2)/cp; //(18) //coal firm ec = (exp(dz1)*labor_c)^(beta1) * k_c(-1)^beta2 * s(-1)^beta3 ; //(19) ec = (1-deta_s)*s(-1) - s; //(20) k_c(-1) = ec*beta2*(cp-lambda1)/R_k; //(21) labor_c = ec*beta1*(cp-lambda1)/w_c; //(22) N = f-beta*lambdass*lambda1(+1)*(1-deta_s); //(23) s(-1) = ec*beta3*(cp-lambda1)/N; //(24) //the clearing rule y = cons + i + i_c + phi/2*y*(pi/piss-1)^2; //(25) // the output gap ey =exp(da)^(1/(1+eta))*exp(dz)^alpha1*k(-1)^alpha2*ec^alpha3; //(26) gap = y/ey; //(27) end; initval; da = log(ass); dz = log(zss); dz1 = log(z1ss); r_k = (1-beta+beta*deta)/beta; R_k = (1-beta+beta*deta_c)/beta; mc = (theta-1)/theta; pi = piss; dr = log(pi/beta); lambda = 1; cons = (1-beta*b_c)*exp(da)/(lambda*(1-b_c)); w = 0.63133; labor = (lambda*w/exp(da))^(1/eta); y = w^(1/eta+1)/(alpha1*mc); cp = (mc*(alpha1^alpha1)*(alpha2^alpha2)*(alpha3^alpha3)/(r_k^alpha2*w^alpha1))^(1/alpha3); ec = y*mc*alpha3/cp; k=(y/((exp(dz)*labor)^alpha1*ec^alpha3))^(1/alpha2); i = k*deta; i_c = y-cons-i; k_c = i_c/deta_c; lambda1 = cp - k_c*R_k/(ec*beta2); w_c = ((ec*beta1*(cp-lambda1))^eta_c*exp(da)/lambda)^(1/(1+eta_c)); labor_c = ec*beta1*(cp-lambda1)/w_c; s = ec/(-deta_s); N = ec*beta3*(cp-lambda1)/s; f = N + beta*lambdass*lambda1*(1-deta_s); ey =exp(da)^(1/(1+eta))*exp(dz)^alpha1*k^alpha2*ec^alpha3; gap = y/ey; end; shocks; var e_a; stderr 0.01; var e_z; stderr 0.01; var e_z1; stderr 0.01; var e_r; stderr 0.01; end; //************************************************************************** steady; //steady(solve_algo = 3); //check; //************************************************************************** // Bayes estimation estimated_params; b_c, beta_pdf, 0.5, 0.01; deta, beta_pdf, 0.05, 0.01; deta_c, beta_pdf, 0.06, 0.005; deta_s, beta_pdf, 0.05, 0.01; rhoa, beta_pdf, 0.85, 0.005; rhoz, beta_pdf, 0.9, 0.01; rhoz1, beta_pdf, 0.55, 0.01; rhoy, normal_pdf, -0.05, 0.01; rhopi, normal_pdf, 1.0, 0.05; stderr e_a, inv_gamma_pdf, 0.01, inf; stderr e_z, inv_gamma_pdf, 0.01, inf; stderr e_z1, inv_gamma_pdf, 0.01, inf; stderr e_r, inv_gamma_pdf, 0.01, inf; end; stoch_simul; //varobs y cons i_c ec; //estimation(datafile=coal_simul1, order=1,nobs=60, mode_compute = 5, mode_check, mh_replic=2000, mh_nblocks=2, mh_jscale=0.4) y; //stoch_simul output cp ec pi i;