%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Secretaria do Tesouro Nacional - STN
% Modelo Novo Keynesiano inspirado em Gerali et. al. (2010)
% Autor: Márcio Francisco da Silva
% Agentes: 1 - Familias Pacientes, 2 - Famílias Impacientes, 3 - Empresários,
%          4 - Sindicatos, 5 - Bancos, 6 - Produtores de capital,
%          7 - Produtores de Imóveis, 8 - Produtores de Bens finais, 9 - Governo, 10 - Setor externo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

var 
A_e        % Choque tecnológico
B          % Empréstimo às famílias e firmas
b_e        % Empréstimo às firmas
b_i        % Empréstimo às famílias, colateral
b_iw       % Empréstimo às famílias, consignado
Bg         % Empréstimo ao governo
Bstar      % Empréstimo externo
C          % Consumo das famílias e empresários
c_e        % Consumo dos empresários
c_i        % Consumo das famílias impacientes
c_p        % Consumo das famílias pacientes
dbgg       % Divida Bruta do governo geral
d_p        % depósitos das famílias 
ee_j       % Choque, preferencia por imóveis
ee_qh      % Choque, investimento em imóveis
ee_qk      % Choque, investimento em capital privado
ee_z       % Choque, preferencia por consumo
eps_Ig     % Choque, investimento em capital público
eps_g     % Choque, gasto público
eps_K_b    % Choque, investimento em capital bancário
eps_l      % Elasticidade de substituição entre tipos de trabalho
eps_premium % Choque, premio de risco
eps_y      % Elasticidade de substituição entre tipos de bens
er         % Taxa de câmbio real 
G          % Consumo do governo
h          % Estoque de imóveis, total
h_e        % Estoque de imóveis, empresários
h_i        % Estoque de imóveis, famílias impacientes
h_p        % Estoque de imóveis, famílias pacientes
I          % Investimento em capital privado 
Ih         % Investimento em imóveis
Ig         % Investimento em capital público
j_B        % Lucro dos bancos
J_R        % Lucro das firmas
K          % Capital privado
K_b        % Capital bancário
Kg         % Capital público
l_i        % Mão-de-obra, impaciente
l_p        % Mão-de-obra, paciente
lam_e      % preço-sombra
lam_i      % preço-sombra
lam_p      % preço-sombra
m_e        % Razão loan-to-value, empresários
m_i        % Razão loan-to-value, famílias
m_iw       % Razão debt-to-income 
mk_be      % Mark-up de taxa de juros, empréstimo para as firmas 
mk_bh      % Mark-up de taxa de juros, empréstimo para as farmílias
mk_bw      % Mark-up de taxa de juros, empréstimo para as famílias
mk_d       % Mark-down de taxa de juros, depósitos
pie        % Inflação doméstica de preços 
pie_star   % Inflação externa
pie_wi     % Inflação de salários, mão-de-obra da família impaciente 
pie_wp     % Inflação de salários, mão-de-obra da família paciente
PIW        % Inflação de salários
pQ         % Preço do insumo importado
premium    % Prêmio de risco
Q          % Insumo importado 
q_h        % Preço dos imóveis
q_k        % Preço do capital
R_b        % Taxa de juros, interbancário
r_be       % Taxa de juros, empréstimo às firmas
r_bh       % Taxa de juros, empréstimo às famílias
r_bw       % Taxa de juros, empréstimo às famílias
r_d        % Taxa de juros, depósitos
r_gov
r_ib       % Taxa de juros, política monetaria
r_k        % Retorno do capital
Rstar      % Taxa de juros externa
s_e        % preço-sombra
s_i        % preço-sombra
s_iw       % preço-sombra
tauy       % Alíquota de imposto
T          % Receita de impostos
u          % Taxa de utilização do capital
w_i        % Salário, família impaciente
w_p        % Salário, família paciente
x          % Preço relativo do bem intermediário
Y          % PIB
y          % VBA
y_e        % Produto intermediário
y_exp      % Exportações
ystar      % Renda externa
Value_p    % Utilidade, família paciente
Value_i    % Utilidade, família impaciente
Value_e    % Utilidade, empresários
Value_t    % Utilidade, total
prob
fator

;

varexo e_z e_A_e e_j e_mi e_me e_mk_d e_mk_be e_mk_bh e_qk e_y e_r_ib e_l e_eps_K_b e_miw e_mk_bw e_qh e_pQ e_pie_star e_Rstar e_ystar e_eps_premium e_Ig e_tauy e_g;

parameters  beta_p j phi beta_i m_i_ss beta_e m_e_ss eksi_1 eksi_2    // HOUSEHOLDS & ENTREPRENEURS
            a_i a_p a_e ni                     // HOUSEHOLDS & ENTREPRENEURS
            eps_l_ss kappa_w                                                // HOUSEHOLDS (labor params)
            eps_d eps_bh eps_be                                             // BANKS 
            mk_d_ss mk_bh_ss mk_be_ss r_be_ss  r_bh_ss r_k_ss               // BANKS (SS)
            beta_b delta_kb vi kappa_kb                              // BANKS 
            eps_y_ss kappa_p ind_p ind_w                                    // RETAILERS
            kappa_i kappa_d kappa_be kappa_bh deltak                        // OTHERS
            rho_ib phi_pie phi_y                                            // POLICY
            piss  r_ib_ss                                                   // STEADY STATE
            rho_ee_z rho_A_e rho_ee_j rho_mi rho_me rho_eps_y               // SHOCKS
            rho_mk_d rho_mk_be rho_mk_bh rho_ee_qk rho_eps_l rho_eps_K_b    // SHOCKS
            ind_d ind_be ind_bh                                             // OTHERS

            deltah eps_bw mk_bw_ss r_bw_ss kappa_ih kappa_bw ind_bw m_iw_ss
            rho_miw rho_mk_bw rho_ee_qh
            Rstar_ss ystar_ss pie_star_ss alphak alphal chi tau
            zeta rho_ystar rho_pie_star rho_Rstar rho_pQ rho_eps_premium
            kappa_ig deltag teta_iy teta_ib teta_g etag tauy_ss growth
            rho_tauy rho_ig rho_g
            recup dbgg_sus
            ;

% *********************			
% CALIBRATED PARAMETERS
% *********************

alphak       = 0.4;
alphal       = 0.5;
beta_p       = 0.989; //0.9943;                                                     % discount factor patient households
beta_i       = 0.96; //0.975; "Iacoviello 2005"                                                    % discount factor impatient households     
beta_b       = beta_p;                                                     % discount factor bankers (not used in this version of the model)
beta_e       = beta_i;                                                     % discount factor entrepreneurs
j            = 0.2;                                                        % weight of housing in utility function
phi          = 1.0;                                                        % inverse Frisch elasticity of labor supply
m_i_ss       = 0.06;//0.15;//0.7  ;                                               % loan-to-value ratio impatient households
m_e_ss       = 0.007;//0.085;//0.35 ;                                              % loan-to-value ratio entrepreneurs
m_iw_ss      = 0.1;

eps_d        = -2.62;//-12.624223124295;//-1.46025;                                   % elast. of subst. of deposits 
eps_bh       = 5.36;//5.3561509445936;//
eps_be       = 2.73;//2.7328233013319;// 
eps_bw       = 4.5;

mk_d_ss      = eps_d   / (eps_d  - 1) ;                                    % steady state markdown on D (ok if eps_d<0; if eps_d>0 it should be eps_d/(eps_d+1) )
mk_bh_ss     = eps_bh  / (eps_bh - 1) ;                                    % steady state markup on loans to I
mk_be_ss     = eps_be  / (eps_be - 1) ;                                    % steady state markup on loans to E
mk_bw_ss     = eps_bw/(eps_bw - 1); 
eps_y_ss     = 11; //6;                                                    % 
eps_l_ss     = 3; //5;                                                     % 
ni           = 0.8;                                                        % wage share of patient households
deltak       = 0.025; % 0.035; //                                             % depreciation rate for physical capital
deltah       = 0.025; 
delta_kb     = 0.095; //0.094364024331655;
deltag       = 0.01; % 0.015; % 
piss         = 1;//1.045^0.25; //                                            % steady state gross inflation rate
pie_star_ss  = 1;
r_ib_ss      = (piss/beta_p - 1) * (eps_d-1)/eps_d ;                       % steady state gross nominal interest rate 
r_be_ss      = r_ib_ss*eps_be/(eps_be-1) ;								   % steady state interest rate on loans to E
r_bh_ss      = r_ib_ss*eps_bh/(eps_bh-1) ;								   % steady state interest rate on loans to H
r_bw_ss      = (eps_bw/(eps_bw - 1))*r_ib_ss;
r_k_ss       = -(1-deltak)-m_e_ss*(1-deltak)*piss/beta_e*
               (1/(1+r_be_ss)-beta_e/piss)+1/beta_e;                       % steady state rental rate of capital
Rstar_ss     = 0.005;
eksi_1       = r_k_ss;                                                     % capital utilization cost parameter
eksi_2       = 0.1*r_k_ss;                                                 % capital utilization cost parameter
vi           =  0.17; //0.09;                                                      % Banking Capital ratio over Loans (Basel II)

ind_d        = 0.0;                   % indexation deposit rates
ind_be       = 0.0;                   % indexation rates on loans to firms
ind_bh       = 0.0;                   % indexation rates on loans to households
ind_bw       = ind_bh;

rho_ee_z	=   0.98;
rho_A_e     =	0.598;
rho_ee_j	=	0.636;
rho_me      =	0.459;
rho_mi      =	0.556;
rho_mk_d	=	0.936;
rho_mk_bh	=	0.132;
rho_mk_be	=	0.564;
rho_ee_qk	=	0.937;
rho_eps_y	=	0.517;
rho_eps_l	=	0.547;
rho_eps_K_b	=	0.627;
rho_miw     =   0.57;
rho_mk_bw   =   0.129;
rho_ee_qh   =   0.992;
rho_ystar   =   0.994;
rho_pie_star =  0.809;
rho_Rstar   =   0.261;
rho_pQ      =   0.955;
rho_eps_premium = 0.295;
rho_tauy     =   0.5;
rho_ig       =   0.5;
rho_g        =   0.5;

kappa_p     =	84.66; % 33.7705265016395	;
kappa_w     =   65.605; % 33.7705265016395	;
kappa_i     =	3.217; % 10.0305562248008	;
kappa_d     =	6.459; % 2.77537377104213	;
kappa_be	=	0.221; % 7.98005959044637	;
kappa_bh	=	7.139; % 9.04426718749482	;
kappa_kb	=	0.385; % 8.91481958034669	;
kappa_ih    =   4.274; % 10.0305562248008	;
kappa_bw    =   13.301; % 9.04426718749482	;
kappa_ig    =   10.0305562248008	;

phi_pie     =	1.79; % 2.00384780180824    ;
rho_ib      =	0.517; % 0.750481873084311	;
phi_y       =	0.173; % 0.303247771697294	;
ind_p       =	0.956; % 0.158112794106546	;
ind_w       =	0.808; % 0.300197804017489	;
a_i	        =	0.915; % 0.867003766306404	;
a_e         =   0.0     ;   % degree of habit formation: entrepreneurs
a_p         =   0.0     ;   % degree of habit formation: patient households
ystar_ss    =   2;
zeta        =   -0.1;
chi         =   0.1;
tau         =   -1.1;

etag        =   0.0805; % 0.2321; %
teta_iy     =   0.08; % 0.07; % 0.27; %
teta_ib     =   0.025; % 0.01; % 0.5; % 
tauy_ss     =    0.0355; % 0.03; % 0.025; %
growth      =   0.02; % 0.0273; %
teta_g      =   0.04; %

recup       =   0.9;
dbgg_sus    =   1.2;

//%------------------------------------------------------------
//% Model equations
//%------------------------------------------------------------

model;

////***********   1) PATIENT HHs ********************************************************6

  (1-a_i)*ee_z*(c_p - a_i*c_p(-1))^(-1) = lam_p; 

  j * ee_j / h_p - lam_p * q_h + (1 - deltah) * beta_p * lam_p(+1) * q_h(+1)   = 0; // 

  lam_p  = beta_p * lam_p(+1) * (1 + r_d) / pie(+1); // 

  (1 - eps_l) * l_p + l_p ^(1+phi) / w_p * eps_l/lam_p - kappa_w *( pie_wp - pie(-1) ^ ind_w * piss ^ (1-ind_w) ) * pie_wp +  beta_p * lam_p(+1)/lam_p * kappa_w *( pie_wp(+1) - pie ^ ind_w * piss ^ (1-ind_w) ) * pie_wp(+1) ^2 / pie = 0 ;

  pie_wp = w_p / w_p(-1) * pie;

  c_p + q_h * ( h_p - (1 - deltah)*h_p(-1) ) + d_p = (1 - tauy) * (w_p * l_p + J_R) + (1+r_d(-1))*d_p(-1)/pie ;

////***********   2) IMPATIENT HHs ********************************************************7

  (1-a_i)*ee_z*(c_i - a_i*c_i(-1))^(-1) = lam_i;

   j * ee_j / h_i - lam_i * q_h + (1 - deltah) * ( beta_i * lam_i(+1) * q_h(+1) + s_i * m_i *q_h(+1) * pie(+1) ) = 0;    // 

   lam_i - beta_i * lam_i(+1) * (1 + r_bh) / pie(+1) = s_i * (1 + r_bh); // 

   lam_i - beta_i * lam_i(+1) * (1 + r_bw) / pie(+1) = s_iw * (1 + r_bw); // 

  (1 - eps_l) * l_i + eps_l * l_i^(1 + phi) / (w_i * (lam_i + m_iw * s_iw)) - kappa_w *( pie_wi - pie(-1) ^ ind_w * piss ^ (1 - ind_w) ) * pie_wi +  beta_i * (lam_i(+1) + s_iw(+1) + m_iw(+1))/(lam_i + s_iw + m_iw) * kappa_w *( pie_wi(+1) - pie ^ ind_w * piss ^ (1 - ind_w) ) * pie_wi(+1)^2 / pie(+1) = 0 ;

   pie_wi = w_i / w_i(-1) * pie;

   c_i + q_h * (h_i - (1 - deltah) * h_i(-1)) + (1 + r_bh(-1))*b_i(-1)/pie + (1 + r_bw(-1))*b_iw(-1)/pie = (1 - tauy) * w_i * l_i + b_i + b_iw ;

   (1 + r_bh) * b_i = m_i * q_h(+1) *h_i * pie(+1);     //
 
   (1 + r_bw) * b_iw = m_iw * w_i(+1) * l_i(+1) * pie(+1);     // 


////***********  3) CAPITAL PRODUCERS *****************************************************

 (K) = (1-deltak) *  (K(-1)) + ( 1 - kappa_i/2 * ( (I)* (ee_qk)/ (I(-1)) - 1)^2 ) *  (I) ;   

1 =  (q_k) * ( 1 -  kappa_i/2 * ( (I)* (ee_qk)/ (I(-1)) - 1)^2  - kappa_i * ( (I)* (ee_qk)/ (I(-1)) - 1) *  (I)* (ee_qk)/ (I(-1)) ) 
  + beta_e *  (lam_e(+1)) /  (lam_e) *  (q_k(+1)) *   kappa_i * ( (I(+1))* (ee_qk(+1))/ (I) - 1) *  (ee_qk(+1)) * ( (I(+1))/ (I))^2 ; //

////***********  3) HOUSING PRODUCERS *****************************************************

 h = (1 - deltah) * h(-1) + ( 1 - kappa_ih/2 * ( Ih*ee_qh/ I(-1) - 1)^2 ) * Ih ;   

1 =  (q_h) * ( 1 -  kappa_ih/2 * ( (Ih)* (ee_qh)/ (Ih(-1)) - 1)^2  - kappa_ih * ( (Ih)* (ee_qh)/ (Ih(-1)) - 1) *  (Ih)* (ee_qh)/ (Ih(-1)) ) 
  + beta_e *  (lam_e(+1)) /  (lam_e) *  (q_h(+1)) *   kappa_ih * ( (Ih(+1))* (ee_qh(+1))/ (Ih) - 1) *  (ee_qh(+1)) * ( (Ih(+1))/ (Ih))^2 ; //

////************  4) ENTREPRENEURS *********************************************************

  (1-a_i)*ee_z*( c_e - a_i* (c_e(-1)))^(-1) = lam_e; 

  s_e * m_e * q_k(+1) * pie(+1) * (1 - deltak) + beta_e * lam_e(+1) * (  (q_k(+1))*(1-deltak) +  ((1 - tauy(+1))*r_k(+1))* (u(+1)) - ( eksi_1*( (u(+1))-1) + eksi_2/2*( ( u(+1) - 1)^2 ) ) ) = lam_e * q_k ; 

  j * ee_j / h_e - lam_e * q_h + (1 - deltah) * ( beta_e * lam_e(+1) * q_h(+1) + s_e * m_e *q_h(+1) * pie(+1) ) = 0;  

  w_p = (1 - tauy)*ni * alphal * y_e / ( l_p * x );

  w_i = (1 - tauy)*(1 - ni) * alphal * y_e / ( l_i * x );

  er*pQ = (1 - tauy)*(1 - alphak - alphal) * y_e / ( Q * x );

  lam_e - s_e  * (1 + r_be) = beta_e * lam_e(+1) * (1 + r_be) / pie(+1);  //

  (1 - tauy)*r_k  = eksi_1 + eksi_2 * (u - 1);//

  c_e + ((1 + r_be(-1)) * (b_e(-1)) / pie ) + q_h * (h_e - (1 - deltah) * h_e(-1)) +  w_p * l_p + w_i * l_i + q_k * K  + ( eksi_1*( u - 1 ) + eksi_2/2*( u - 1 )^2 ) * K(-1) + er*pQ*Q = (1 - tauy)*y_e / x +  b_e +  q_k * (1 - deltak) * K(-1)  ;

  y_e = A_e * (Kg(-1)^etag) * (u * K(-1))^(alphak) * ( (l_p)^ni * (l_i)^(1 - ni) ) ^ (alphal) * (Q)^ (1 - alphak - alphal);

 (1 + r_be) * b_e = m_e * ( q_k(+1) * pie(+1) * K * (1 - deltak) + q_h(+1) * pie(+1) * h_e * (1 - deltah) ); //

  r_k = alphak * A_e * (Kg(-1)^etag) * (u)^(alphak - 1) *  (K(-1))^(alphak - 1) * (  (l_p)^ni *  (l_i)^(1 - ni) ) ^ (alphal)  * (Q)^ (1 - alphak - alphal) / x;  

////*************  5)BANKS ****************************************************************

 R_b = r_gov ; 

// Eq. alterada para gerar choque no Kb
 K_b * pie = (1 - delta_kb) * K_b(-1)/ eps_K_b + j_B(-1) ;

// Eq. alterada para gerar choque no Kb
 b_i + b_iw + b_e + Bg = d_p + er*Bstar + K_b;

// Premio de risco
premium = exp(-zeta*er*Bstar/K_b)*eps_premium;

// Paridade das taxas de juros

(1 + Rstar) * premium * (1 - zeta*er*Bstar/K_b) * (er(+1)/er) * (pie(+1)/pie_star(+1)) = 1 + r_gov;

/// PRICING in terms of MK ///

- 1 +  (mk_d)/( (mk_d)-1)  -  (mk_d)/( (mk_d)-1)  *  (r_ib)/ (r_d)  - kappa_d  * (  (r_d)/ (r_d(-1)) - 1  )  *  (r_d)/ (r_d(-1)) 
  + beta_p * (  (lam_p(+1))/ (lam_p) ) * kappa_d  * (  (r_d(+1))/ (r_d) - (  (r_d)/ (r_d(-1)))^ind_d )   * ( ( (r_d(+1))/ (r_d))^2 )   * ( (d_p(+1))/ (d_p)) = 0;// 
  
+ 1 -  (mk_be)/( (mk_be)-1)  +   (mk_be)/( (mk_be)-1)  *  (R_b)/ (r_be) - kappa_be * ( (r_be)/ (r_be(-1)) - 1 ) *  (r_be)/ (r_be(-1)) 
  + beta_p * (  (lam_p(+1))/ (lam_p) ) * kappa_be * (  (r_be(+1))/ (r_be) - (  (r_be)/ (r_be(-1)))^ind_be ) * ( ( (r_be(+1))/ (r_be))^2 ) * ( (b_e(+1))/ (b_e)) = 0;//   30
  
+ 1 -  (mk_bh)/( (mk_bh)-1)  +   (mk_bh)/( (mk_bh)-1)  *  (R_b)/ (r_bh) - kappa_bh * ( (r_bh)/ (r_bh(-1)) - 1 ) *  (r_bh)/ (r_bh(-1)) 
  + beta_p * (  (lam_p(+1))/ (lam_p) ) * kappa_bh * (  (r_bh(+1))/ (r_bh) - (  (r_bh)/ (r_bh(-1)))^ind_bh ) * ( ( (r_bh(+1))/ (r_bh))^2 ) * ( (b_i(+1))/ (b_i)) = 0;//

+ 1 -  (mk_bw)/( (mk_bw)-1)  +   (mk_bw)/( (mk_bw)-1)  *  (R_b)/ (r_bw) - kappa_bw * ( (r_bw)/ (r_bw(-1)) - 1 ) *  (r_bw)/ (r_bw(-1)) 
  + beta_p * (  (lam_p(+1))/ (lam_p) ) * kappa_bw * (  (r_bw(+1))/ (r_bw) - (  (r_bw)/ (r_bw(-1)))^ind_bw ) * ( ( (r_bw(+1))/ (r_bw))^2 ) * ( (b_iw(+1))/ (b_iw)) = 0;//


 j_B = + r_bh * b_i
       + r_bw * b_iw
       + r_be * b_e
       + er * Bstar
       - r_d * d_p           
       - Bg
       + (1 + r_gov(-1)) * Bg(-1) 
       - kappa_d/2 * ( ( r_d / r_d(-1) - 1)^2) * r_d * d_p 
       - kappa_be/2 * ( ( r_be / r_be(-1) - 1)^2) * r_be * b_e 
       - kappa_bh/2 * ( ( r_bh / r_bh(-1) - 1)^2) * r_bh * b_i
       - kappa_bw/2 * ( ( r_bw / r_bw(-1) - 1)^2) * r_bw * b_iw
       - kappa_kb/2 * ( ( K_b / K_b(-1)  - 1 )^2) * K_b
       - (1 + Rstar(-1)) * premium(-1) * er * Bstar(-1);

////***********  6)RETAILERS **************************************************************

 J_R  =  y*(1 - (1/ x)    - (kappa_p/2) * ( (pie) - (  (pie(-1)) ^ ind_p * piss ^ (1-ind_p) ))^2 ) ;

1 -  (eps_y) +  (eps_y) /  (x) -    kappa_p * ( (pie) - (  (pie(-1)) ^ ind_p * piss ^ (1-ind_p) )) *  (pie) 
    + beta_p*( (lam_p(+1))/ (lam_p))* kappa_p * ( (pie(+1)) - (  (pie)     ^ ind_p * piss ^ (1-ind_p) )) *  (pie(+1)) * ( (y(+1))/ (y)) = 0;  // 34

////************  7) AGGREGATION & EQUILIBRIUM  ************************************************

 C              = c_p + c_i + c_e;
 y_exp          = chi*(1/er)^(-tau) * ystar;
 y_exp - er * pQ * Q - ((1 + Rstar(-1))/pie_star) * premium(-1) * er * Bstar(-1) = er * Bstar - er * Bstar(-1)/pie_star;
 h              = h_p + h_i + h_e; //
 B              = b_i + b_iw + b_e; //
% y              = C + ( K - (1-deltak)* K(-1)) + ( h - (1 - deltah)* h(-1)) + Kg - (1 - deltag)* Kg(-1) + G + y_exp;
 y              = C + q_k*( K - (1-deltak)* K(-1)) + q_h*( h - (1 - deltah)* h(-1)) + Kg - (1 - deltag)* Kg(-1) + G + y_exp;
 Y              = y - er * pQ * Q;
 PIW            = (  w_p +  w_i )  / (  w_p(-1) +  w_i(-1) ) *  pie;

////***********  8) GOVERNMENT *****************************************************                                                  

(1 + r_ib) = (1 + r_ib_ss)^(1 - rho_ib ) * (1 + r_ib(-1))^rho_ib * (( pie / piss ) ^phi_pie *  
             ( (Y)/ (Y(-1)))^phi_y  ) ^ ( 1 - rho_ib ) * (1+e_r_ib) ;//   48

Ig = teta_iy*Y(-1) - teta_ib*Bg(-1) + eps_Ig;

Kg = (1 - deltag) * Kg(-1) + ( 1 - kappa_ig/2 * (Ig/ Ig(-1) - 1)^2) * Ig ; 

G = teta_g * Y(-1) + eps_g;

T = tauy*(w_p*l_p + w_i*l_i + J_R + y_e/x);

prob = max(0, (dbgg(-1) - dbgg_sus)/dbgg(-1));

r_gov = (1 + r_ib)*(1 - recup*prob(+1))/(1 - prob(+1)) - 1;

Bg/Y = ((1 + r_gov(-1))/((1 + growth)*pie))*Bg(-1)/Y(-1) + Ig/Y + G/Y - tauy*(w_p*l_p + w_i*l_i + J_R + y_e/x)/Y ;

////***********  9) EXOGENOUS PROCESSES ****************************************************12

 ee_z     = (1 - rho_ee_z)   *    1          + rho_ee_z   *  ee_z(-1)    + e_z;
 A_e      = (1 - rho_A_e)    *    1          + rho_A_e    *  A_e(-1)     + e_A_e;
 ee_j     = (1 - rho_ee_j)   *    1          + rho_ee_j   *  ee_j(-1)    + e_j;
 m_i      = (1 - rho_mi)     *  m_i_ss       + rho_mi     *  m_i(-1)     + e_mi;
 m_iw     = (1 - rho_miw)    *  m_iw_ss      + rho_miw    *  m_iw(-1)    + e_miw;
 m_e      = (1 - rho_me)     *  m_e_ss       + rho_me     *  m_e(-1)     + e_me;
 mk_d     = (1 - rho_mk_d)   * mk_d_ss       + rho_mk_d   *  mk_d(-1)    + e_mk_d;
 mk_be    = (1 - rho_mk_be)  * mk_be_ss      + rho_mk_be  *  mk_be(-1)   + e_mk_be;
 mk_bh    = (1 - rho_mk_bh)  * mk_bh_ss      + rho_mk_bh  *  mk_bh(-1)   + e_mk_bh;
 mk_bw    = (1 - rho_mk_bw)  * mk_bw_ss      + rho_mk_bw  *  mk_bw(-1)   + e_mk_bw;
 ee_qk    = (1 - rho_ee_qk)  *    1          + rho_ee_qk  *  ee_qk(-1)   + e_qk;
 ee_qh    = (1 - rho_ee_qh)  *    1          + rho_ee_qh  *  ee_qh(-1)   + e_qh;
 eps_y    = (1 - rho_eps_y)  * eps_y_ss      + rho_eps_y  *  eps_y(-1)   + e_y;
 eps_l    = (1 - rho_eps_l)  * eps_l_ss      + rho_eps_l  *  eps_l(-1)   + e_l;
 eps_K_b  = (1 - rho_eps_K_b)*    1          + rho_eps_K_b*  eps_K_b(-1) + e_eps_K_b;
 
 eps_premium  = (1 - rho_eps_premium)*    1  + rho_eps_premium*  eps_premium(-1) + e_eps_premium;
 pQ       = (1 - rho_pQ)     *    1          + rho_pQ     *  pQ(-1)      + e_pQ;
 Rstar    = (1 - rho_Rstar)  * Rstar_ss      + rho_Rstar  *  Rstar(-1)   + e_Rstar;
 ystar    = (1 - rho_ystar)  * ystar_ss      + rho_ystar  *  ystar(-1)   + e_ystar;
 pie_star = (1 - rho_pie_star)* pie_star_ss  + rho_pie_star*  pie_star(-1) + e_pie_star;

 eps_Ig  = (1 - rho_ig)      *    0          + rho_ig    *  eps_Ig(-1)   + e_Ig;
 eps_g   = (1 - rho_g)       *    0          + rho_g    *  eps_g(-1)     + e_g;
 tauy    = (1 - rho_tauy)    * tauy_ss       + rho_tauy  *  tauy(-1)     + e_tauy;

////***********  10) Funções Valor ****************************************************

Value_e = (1 - a_i)*ee_z*log(c_e - a_i*c_e(-1)) + ee_j*j*log(h_e) + beta_e*Value_e(+1);
Value_p = (1 - a_i)*ee_z*log(c_p - a_i*c_p(-1)) + ee_j*j*log(h_p) - ((l_p)^(1 + phi))/(1 + phi) + beta_p*Value_p(+1);
Value_i = (1 - a_i)*ee_z*log(c_i - a_i*c_i(-1)) + ee_j*j*log(h_i) - ((l_i)^(1 + phi))/(1 + phi) + beta_i*Value_i(+1);
%Value_t = (1/3)*Value_e + (1/3)*Value_p + (1/3)*Value_i;
Value_t = (c_e/C)*Value_e + (c_p/C)*Value_p + (c_i/C)*Value_i;
dbgg = Bg/(Y + Y(-1) + Y(-2) + Y(-3));
fator = ((1 + r_gov(-1))/((1 + growth)*pie)) - 1;

end;

initval; 

pie = 1;
pie_wp = 1;
pie_wi = 1;
PIW = 1;
u = 1;
q_k = 1;
q_h = 1;
ee_z = 1;
A_e = 1;
ee_j = 1;
ee_qk = 1;
eps_K_b = 1;
ee_qh = 1;
eps_premium = 1;
pQ = 1;
pie_star = 1;
Rstar = Rstar_ss;
ystar = ystar_ss;
r_d = piss/beta_p -1;
r_bh = r_bh_ss;
r_bw = r_bw_ss;
r_be = r_be_ss;
R_b = r_ib_ss;
r_ib = r_ib_ss;
r_k = r_k_ss;
x = 1.1;
mk_d = mk_d_ss;
mk_be = mk_be_ss;
mk_bh = mk_bh_ss;
mk_bw = mk_bw_ss;
m_i = m_i_ss;
m_e = m_e_ss;
m_iw = m_iw_ss;
eps_y = eps_y_ss;
eps_l = eps_l_ss;
tauy = tauy_ss;

lam_p = 1.02896476; %  
lam_i = 4.958757133; % 
lam_e = 1.858971856; % 
s_i = 0.10640561; % 
s_iw = 0.118025935; % 
s_e = 0.030345278; % 
c_p = 0.971850581; % 
c_i = 0.201663436; % 
c_e = 0.537931759; % 
h_p = 5.440731035; %
h_i = 0.64280628; %
h_e = 1.683968144; %
b_i = 0.036906915; %
b_iw = 0.02294929; %
b_e = 0.104646626; %
d_p = -0.258150451; %
w_p = 1.166289209; %
w_i = 0.265322368; %
y_e = 2.73559381; %
y = 2.761788754; %
K = 14.02069948; %
l_p = 0.800046997; %
l_i = 0.87920045; %
Q = 0.263662797; %
er = 0.884734395; % 
Bstar = 0.023346167; %
premium = 1.005151345; % 
K_b = 0.401998126; %
y_exp = 0.254136911; % 
Kg = 10.02401703; %
Bg = 2.076844848; %
h = h_p + h_i + h_e;
I = deltak*K;
Ih = deltah*h;
C = c_p + c_i + c_e;
B = b_i + b_e + b_iw;
J_R = (1 - 1/x)*Y;
j_B = delta_kb*K_b;
Ig = deltag*Kg;
Y = y - er*Q;
G = teta_g*Y;
T = tauy*(w_p*l_p + w_i*l_i + J_R + y_e/x);
dbgg = 0.5624;

end;

//// COMPUTE THE SS /////
steady(maxit = 5000, solve_algo = 1);

model_diagnostics;

%%%% get the SS values %%%%
ss_vector = oo_.steady_state;
n_vars    = length(ss_vector);
ss_cell   = mat2cell(ss_vector,ones(1,n_vars));
tmp       = [M_.endo_names,ones(n_vars,1)*44]';
varnames  = ['[',tmp(:)',']'];
eval([varnames,' = deal(ss_cell{:});'])

                 
disp(' ');disp('%%% Display some SS results (BK model): %%%%')

disp(['C/Y: ',num2str( (C)/ (Y))]);
disp(['Ik/Y: ',num2str( (I)/ (Y))]);
disp(['Ih/Y: ',num2str( (Ih)/ (Y))]);
disp(['I/Y: ',num2str( (I + Ih)/ (Y))]);
disp(['Ig/Y: ',num2str( Ig / (Y))]);
disp(['K/Y: ',num2str( (K)/ (Y))]);
disp(['Kg/Y: ',num2str( (Kg)/ (Y))]);
disp(['H/Y: ',num2str( (h)/ (Y))]);
disp(['G/Y: ',num2str( G / (Y))]);
disp(['Impostos/Y: ',num2str( tauy*(w_p*l_p + w_i*l_i + J_R + y_e/x) / (Y))]);
disp(['erBstar/Y: ',num2str( er*Bstar/ (Y))]);
disp(['Exp/Y: ',num2str( y_exp/ (Y))]);
disp(['Imp/Y: ',num2str( er*pQ*Q/ (Y))]);
disp(['r_d (%annual): ',num2str( (r_d)*400)]);
disp(['r_ib (%annual): ',num2str( (r_ib)*400)]);
disp(['r_gov (%annual): ',num2str( (r_gov)*400)]);
disp(['r_bh (%annual): ',num2str( (r_bh)*400)]);
disp(['r_bw (%annual): ',num2str( (r_bw)*400)]);
disp(['r_be (%annual): ',num2str( (r_be)*400)]);
disp(['bi/(bi+biw+be)(%): ',num2str( b_i /( b_i + b_iw + b_e)*100)]);
disp(['biw/(bi+biw+be)(%): ',num2str( b_iw /( b_i + b_iw + b_e)*100)]);
disp(['be/(bi+biw+be)(%): ',num2str( b_e /( b_i + b_iw + b_e)*100)]);
disp(['D/Y: ',num2str( (d_p)/ (Y))]);
disp(['K_b/B: ',num2str( (K_b)/ (B))]);
disp(['K_b/Y: ',num2str( (K_b)/ (Y))]);
disp(['B/Y: ',num2str( (B)/ (Y))]);
disp(['DBGG: ',num2str( dbgg )]);
disp(['Utilidade: ',num2str( Value_t)]);



shocks;
//estimated st.dev.

var e_z         = 0.385^2; % 0.0144^2;
var e_A_e       = 0.1759^2; % 0.185807999596714^2;
var e_j         = 3.6008^2; % 0.0658^2;
var e_me        = 0.2801^2; % 0.0034^2;
var e_mi        = 0.8502^2; % 0.0023^2;
var e_miw       = 0.8415^2; % 0.0023^2;
var e_mk_d      = 1.7323^2; % 0.0488^2;
var e_mk_bh     = 0.9062^2; % 0.0051^2;
var e_mk_bw     = 0.050^2; % 0.0051^2;
var e_mk_be     = 4.4625^2; % 0.1454^2;
var e_qk        = 0.7344^2; % 0.0125^2;
var e_qh        = 0.4777^2; % 0.0125^2;
var e_r_ib      = 0.13^2; % 0.0013^2;
var e_y         = 1.0754^2; % 1.0099^2;
var e_l         = 1.0198^2; % 0.3721^2;
var e_eps_K_b   = 0.6341^2;
var e_pQ        = 0.3063^2;
var e_eps_premium    = 0.3209^2;
var e_Rstar     = 0.3248^2;
var e_ystar     = 0.4146^2;
var e_pie_star  = 0.2902^2;
var e_Ig        = 0.3232^2;
var e_tauy      = 0.1528^2;
var e_g         = 0.2023^2;

end;

/*
stoch_simul(order=1,irf=20) A_e B b_e b_i b_iw Bg Bstar C c_e c_i c_p d_p dbgg
ee_j ee_qh ee_qk ee_z eps_Ig eps_K_b eps_l eps_premium eps_y er G h h_e 
h_i h_p I Ih Ig j_B J_R K K_b Kg l_i l_p m_e m_i m_iw mk_be mk_bh mk_bw
mk_d pie pie_star pie_wi pie_wp PIW pQ premium Q q_h q_k R_b r_be r_bh r_bw
r_d r_ib r_gov r_k Rstar tauy T u w_i w_p x Y y y_e y_exp ystar;
*/


//%------------------------------------------------------------
//% BAYESIAN ESTIMATION  
//%------------------------------------------------------------

//% defining which dataseries are used in estimation

varobs C I Y Q y_exp pie G r_ib dbgg; %

estimated_params ;

//%               Initial conditions    PRIOR shape     MEAN     STD
rho_tauy         ,      ,            beta_pdf,     0.50,   0.25  ; //0.80,   0.10  ;    
rho_ig           ,      ,            beta_pdf,     0.50,   0.25  ; //0.80,   0.10  ;    
rho_g            ,      ,            beta_pdf,     0.50,   0.25  ; //0.80,   0.10  ;    
dbgg_sus         ,      ,          normal_pdf,     1.20,    1.0 ;

end;

estimation(datafile = dados_stn3
           ,mode_compute = 6 
           ,mh_jscale    = 0.30            
           ,presample    = 1
           ,prefilter    = 0
           ,prior_trunc  = 1e-14
           ,mh_replic    = 600000
           ,mh_nblocks   = 2
           ,filtered_vars
           ,lik_init     = 1
           ,order        = 1
           ,mode_check
           ,irf          = 20
           ,bayesian_irf
           ,forecast     = 40 
           ,tex
           );

shock_decomposition(parameter_set = posterior_mode) Y I Ig C pie r_ib G dbgg;
