
var varrho W L C R Q Sp phi N PSI z Rk eta nu x K Y A U xi Pm I pi G T i;

predetermined_variables K R;

varexo e_A e_G e_i e_xi;

parameters chi varphi beta h theta omega lambda PSI_bar z_bar phi_bar Rk_bar nu_bar
 x_bar alpha delta zeta delta_lin_bar eta_i xi_bar varepsilon gamma gamma_p kappa_pi kappa_y
 rho GY_bar CY_bar IY_bar tal KY_bar TY_bar rho_A rho_xi rho_G;

   chi=3.409;
   varphi=0.276;
   beta=0.990;
   h=0.815;
   omega=0.002;
   PSI_bar=1.000;
   z_bar=1.020;
   phi_bar=4.098;
   Rk_bar=1.013;
   nu_bar=0.004;
   x_bar=z_bar;
   alpha=0.330;
   delta=0.025;
   zeta=7.200;
   delta_lin_bar=0.038;
   eta_i=1.728;
   xi_bar=1.000;
   varepsilon=4.167;
   gamma=0.779;
   gamma_p=0.241;
   kappa_pi=1.5;
   kappa_y=0.50/4;
   rho=0.8;
   GY_bar=0.200;
   CY_bar=0.633;
   IY_bar=0.167;
   tal=1.000;
   KY_bar=6.669;
   TY_bar=0.200;

model(linear);

varrho + W = varphi*L;
((1-(beta*h))*(1-h))*varrho = ((h*C(-1))-((1+(beta*(h^2)))*C)+(beta*h*C(+1)));
R(+1) = -(varrho(+1)-varrho);
Q + Sp = phi + N;
PSI + K(+1) = Sp;
N = theta*z_bar*(z + N(-1)) + omega*phi_bar*(Q + Sp(-1));
z = (phi_bar/z_bar)*(Rk_bar*Rk + (Rk_bar - (1/beta))*phi(-1)) + ((1-phi_bar)/beta)*R;
phi = eta + (nu_bar/(lambda - nu_bar))*nu;
eta = beta*theta*z_bar*(varrho(+1) - varrho + z(+1) + eta(+1));
nu = beta*(((1-theta)/nu_bar)*(Rk_bar-(1/beta))+(theta*x_bar))*(varrho(+1) - varrho) + beta*((1-theta)/nu_bar)*((Rk_bar*Rk(+1))-((1/beta)*R(+1))) + beta*theta*x_bar*(x(+1)+nu(+1));
x = (phi - phi(-1)) + z;
Y = A + (alpha*(U+xi+K))+ ((1-alpha)*L);
Pm + Y = (1+zeta)*U + xi + K;
Pm + Y - L = W;
Rk_bar*(Rk + Q(-1)) = xi_bar*(delta_lin_bar*(Pm + Y - K - U) + Q + (1-delta)*xi);
(1-xi_bar)*Q = eta_i*((1-xi_bar*(1-delta))*(I-I(-1)) + (xi_bar*delta*(xi-xi(-1) + K-K(-1))) - (xi_bar*delta_lin_bar*(U-U(-1))));
pi - gamma_p*pi(-1) = (((1-gamma)*(1-beta*gamma)/gamma)*Pm) + beta*(pi(+1) - gamma_p*pi);
Y = (CY_bar)*C + (IY_bar)*I + (GY_bar)*G + tal*KY_bar*(PSI_bar*PSI + (1-PSI_bar)*(Q+K(+1)));
K(+1) = xi_bar*(1-delta)*(xi + K) + (1-xi_bar*(1-delta))*I - xi_bar*delta_lin_bar*U;
GY_bar*G = TY_bar*T - tal*KY_bar*(PSI_bar*PSI + (1-PSI_bar)*(Q+K(+1))) + (Rk_bar - (1/beta))*KY_bar*((1-PSI_bar)*((Rk_bar/(Rk_bar-(1/beta)))*Rk + (1- (Rk_bar/(Rk_bar-(1/beta))))*R + Q + K) + PSI_bar*PSI(-1));
((1/beta)-1)*i = ((1-rho)*(kappa_pi*pi + kappa_y*Pm)) + (((1/beta)-1)*rho*i(-1)) + e_i;
i = R(+1) + pi(+1);
PSI = (nu_bar/PSI_bar)*(Rk(+1)-R(+1));
A = rho_A*A(-1) - e_A;
xi = rho_xi*xi(-1) + e_xi;
G = rho_G*G(-1) + e_G;
end;

varobs Y C I G L W i pi;

initval;

varrho=0;
W=0;
L=0;
C=0;
R=0;
Q=0;
Sp=0;
phi=0;
N=0;
PSI=0;
z=0;
Rk=0;
eta=0;
nu=0;
x=0;
K=0;
Y=0;
A=0;
U=0;
xi=0;
Pm=0;
I=0;
pi=0;
G=0;
T=0;
i=0;

estimated_params;

theta, beta_pdf, 0.97, 0.05;
lambda, beta_pdf, 0.38, 0.05;
rho_A, beta_pdf, 0.95, 0.05;
rho_G, beta_pdf, 0.95, 0.05;
rho_xi, beta_pdf, 0.95, 0.05;
stderr e_A, inv_gamma_pdf,0.025, inf;  
stderr e_G, inv_gamma_pdf,0.025, inf; 
stderr e_i, inv_gamma_pdf,0.025, inf;
stderr e_xi, inv_gamma_pdf,0.025, inf;

end;


estimation(datafile=dados_est)
