  //********************************************************************************************
//                   Simulation du modèle sans friction financière : MSF                 
//********************************************************************************************





//-------------------------------------------------------------------------
// Partie 1: Déclaration des variables endogènes
//-------------------------------------------------------------------------

var

lambda              % 01- L'utilité marginale de consommation

C                   % 02- La consommation du ménage représentatif

R                   % 03- Le taux d'intérêt reél brut 
 
L                   % 04- L'offre de travail du ménage représentatif 

Wh                  % 05- Le salaire horaire versé au ménage représentatif

P                   % 06- Le niveau général de prix/l'indicateur du prix aggrégé

I                   % 07- L'investissement

Rh                  % 08- La rente brute réelle de location du capital physique 

U                   % 09- Le taux variable d'utilisation du capital physique 

K                   % 10- Le capital physique

q                   % 11- Le prix unitaire du capital physique

S1                  % 12- Variable auxiliaire utilisée pour la résolution du Wstar

S2                  % 13- Variable auxiliaire utilisée pour la résolution du Wstar

S3                  % 14- Variable auxiliaire utilisée pour la résolution du Pstar

S4                  % 15- Variable auxiliaire utilisée pour la résolution du Pstar

W                   % 16- L'indicateur du salaire aggrégé

Wstar               % 17- Le salaire choisi par les "Labour unions" optimisateurs

Mw                  % 18- Le markup de salaire

Y                   % 19- L'indice composite du bien final

Mp                  % 20- Le markup de prix

fi                  % 21- Le coût marginal réel associé à la production de biens intermédiaires/ le prix de vente

Pstar               % 22- Le prix choisi par les " Retailers" optimisateurs

Rn                  % 23- Le taux d'intérêt nominal brut

pi                  % 24- Le taux d'inflation brut

luw                 % 25- Le log du choc du markup de salaire

lup                 % 26- Le log du choc du markup de prix

la                  % 27- Le log du choc technologique

G                   % 28- Le choc de dépenses publiques 

lx                  % 29- Le log du choc d'efficience marginale d'investissement


;


//-------------------------------------------------------------------------
// Partie 2: Déclaration des variables exogènes
//-------------------------------------------------------------------------

varexo 

x_shk               % 01- L'innovation associée au choc d'efficience marginale d'investissement
 
uw_shk              % 02- L'innovation associée au choc du markup de salaire

up_shk              % 03- L'innovation associée au choc du markup de prix

a_shk               % 04- L'innovation associée au choc technologique

r_shk               % 05- Le choc de politique monétaire

g_shk               % 06- L'innovation associée au choc de dépenses publiques

;





//-------------------------------------------------------------------------
// Partie 3: Déclaration de paramètres
//-------------------------------------------------------------------------

parameters 

h 

bet

phi 

xi

delta

zeta  

phi1 

phi2

elasw 
 
indexw 

probaw 

indexp

elas 

probap

alfa 

theta 
 
rhouw

rhoup

rhoa

rhoi 

rhopi

rhoy 

rhog

rhox

%sigmax 

%sigmauw 

%sigmaup

%sigmaa

%sigmag 

%sigmai

 ;



//-------------------------------------------------------------------------
// Partie 4: Calibration de paramètres
//-------------------------------------------------------------------------


h= 0.593;                          % 01- Le degré de formation d'habitudes externes

bet = 0.99;                        % 02- Le facteur d'escompte 

phi = 0.222 ;                      % 03- L'inverse de l'élasticité-Frisch de l'offre de travail du ménage représentatif

xi = 7.354 ;                       % 04- Les coûts d'ajustement en investissement

delta = 0.025;                     % 05- Le taux de dépréciation du capital physique

zeta = 0.730 ;                     % 06- L'élasticité d'utilisation du capital physique

elasw = 6 ;                        % 07- L'élasticité de substitution dans le marché du travail

indexw = 0.493 ;                   % 08- Le degré d'indexation de salaire

probaw = 0.678;                    % 09- La probabilité( à la Calvo) qu'un "Labour union"  n'ajuste pas son salaire

indexp= 0.156;                     % 10- Le degré d'indexation de prix

elas = 6      ;                    % 11- L'élasticité de substitution dans le marché de biens

probap = 0.743 ;                   % 12- La probabilité(Calvo) qu'un " retailer" n'ajuste pas son prix

alfa = 0.3 ;                       % 13- La part du capital physique dans la production

theta = 2.219 ;                    % 14- Les coûts fixes dans la production

rhoi = 0.905 ;                     % 15- Paramètre de lissage de la règle de Taylor

rhopi = 1.708 ;                    % 16- Paramètre de Règle de Taylor-inflation

rhoy = - 0.015 ;                   % 17- Paramètre de Règle de Taylor-production

rhog = 0.969 ;                     % 18- La persistence du choc de dépenses publiques

rhoa = 0.973 ;                     % 19- La persistence du choc technologique

rhox = 0.988 ;                     % 20- La persistence du choc d'efficience marginale d'investissement

rhouw = 0.652 ;                    % 21- La persistence du choc du markup de salaire

rhoup = 0.931 ;                    % 22- La persistence du choc du markup de prix

%sigmax = 0.01*3.929 ;              % 23- L'écart-type du choc d'efficience marginale d'investissement

%sigmauw = 0.01*4.381 ;             % 24- L'écart-type du choc du markup de salaire

%sigmaup = 0.01*0.983 ;             % 25- L'écart-type du choc du markup de prix

%sigmaa =0.01* 0.516 ;              % 26- L'écart-type du choc technologique

%sigmag = 0.01*1.344 ;              % 27- L'écart-type du choc des dépenses publiques

%sigmai =0.01* 0.155 ;              % 28- L'écart-type du choc de politique monétaire

//-------------------------------------------------------------------------
// Le calcul analytique de l'état stationaire  en fonction des paramètres du modèle
//-------------------------------------------------------------------------


Ptemp = 1;

Pstartemp= Ptemp;

Rhtemp = (1/bet) -1 + delta ;

Rtemp = 1/bet ;

Rntemp = Rtemp ;

qtemp = 1;

Mptemp = elas/(elas-1) ;

Mwtemp = elasw/(elasw -1) ;

pitemp = 1;

Gtemp = 0 ;

lxtemp = 0 ;

luwtemp = 0 ;

luptemp = 0 ;

latemp = 0 ;

fitemp = 1/Mptemp ;

Wtemp = (((Rhtemp^alfa)/ fitemp)*(alfa^-alfa)*((1-alfa)^(alfa-1)))^(1/(alfa-1)) ;

Wstartemp = Wtemp ;

Whtemp = Wtemp/Mwtemp ;

KL = (alfa/(1-alfa))*(Wtemp/Ptemp)*(1/Rhtemp) ;

Ltemp = ((Whtemp/Ptemp)/((1-h)*((KL^alfa) -delta*KL)))^(1/(1+phi));

Ktemp =KL*Ltemp ;

Itemp = delta*Ktemp ;

CL= (KL^alfa) -delta*KL ;

Ctemp= CL*Ltemp ;

Ytemp = Ctemp + Itemp ;

lambdatemp = 1/((1-h)*Ctemp) ;

S1temp = lambdatemp*Ltemp*(Wtemp^elasw)*(1/(1-bet*probaw));

S2temp = Wstartemp*S1temp/(Ptemp^indexw);

S3temp = lambdatemp*Ytemp*(1/(1-bet*probap));

S4temp = Pstartemp*S3temp/(Ptemp^indexp) ;

Utemp = 1;

phi1 = Rhtemp    ;          % 33- premier paramètre associé à la fonction du coût d'utilisation du capital physique

phi2 = zeta*phi1      ;  % 34- second paramètre associé à la fonction du coût d'utilisation du capital physique





//-------------------------------------------------------------------------
// Partie 5 : Déclaration du modèle
//-------------------------------------------------------------------------


model;

1/(C-h*C(-1)) = lambda ;

lambda/R = bet*lambda(+1) ;

L^phi =lambda*(Wh/P);

lambda*q = bet*lambda(+1)*( Rh(+1)*U(+1)+ (1-delta)*q(+1)- phi1*(U(+1)-1)- (phi2/2)*(U(+1)-1)^2);

1= q*exp(lx)*(1-((0.5*xi)*((I/I(-1) -1)^2)) -(xi*(I/I(-1)-1))*(I/I(-1))) + bet*q(+1)*exp(lx(+1))*(lambda(+1)/lambda)*(xi*(I(+1)/I -1))*((I(+1)/I)^2) ;

Rh = phi1 +phi2*(U-1) ;

K = (1-delta)*K(-1) + exp(lx)*(1-((0.5*xi)*((I/I(-1) -1)^2)))*I;

S1 = (lambda/P)*(W^elasw)*(P(-1)^((1-elasw)*indexw))*L +  bet*probaw*S1(+1);

S2 = (lambda/P)*(W^elasw)*(P(-1)^(-elasw*indexw))*L*Mw*Wh + bet*probaw*S2(+1);

Wstar*((1/P(-1))^indexw)*S1 = S2;

Mw = (elasw/(elasw-1))*exp(luw);

W = ((1-probaw)*(Wstar^(1-elasw)) + probaw*((W(-1)*(pi(-1)^indexw))^(1-elasw)))^(1/(1-elasw)) ;

S3 = lambda*Y*(((P(-1)^indexp)/P)^(1-elas)) + bet*probap*S3(+1);

S4 = lambda*Y*Mp*fi*(((P(-1)^indexp)/P)^-elas) + bet*probap*S4(+1);

(Pstar/(P(-1)^indexp))*S3 =S4 ;

Mp= (elas/(elas-1))*exp(lup);

P^(1-elas) = (1-probap)*(Pstar^(1-elas)) + probap* (P(-1)^(1-elas)) * (pi(-1)^(indexp*(1-elas)));

Y = exp(la)*((U*K)^alfa)*(L^(1-alfa)) ;

W/P = fi*(1-alfa)*(Y/L);

log(Rn/steady_state(Rn)) = rhoi*log(Rn(-1)/steady_state(Rn)) + (1-rhoi)*(rhopi*log(pi/steady_state(pi)) + rhoy*log(Y/steady_state(Y)))  +r_shk;

pi = P /P(-1) ;

Y = C+I +G+ (phi1*(U-1) +phi2*0.5*((U-1)^2))*K;

Rh = fi*alfa*(Y/(U*K));

R=Rn/pi(+1) ;

lx = rhox*lx(-1) + x_shk ;

luw = rhouw*luw(-1) + uw_shk ;

lup = rhoup*lup(-1) + up_shk ;

la = rhoa*la(-1) + a_shk ;

G= rhog*G(-1) + g_shk ;


end;

//---------------------------------------------------------------------
// 6. Des valeurs initiales et l'état stationnaire
//---------------------------------------------------------------------

resid;

%options_.noprint = 1;

steady;  

check;          


//-------------------------------------------------------------------------
// Partie 7: Déclaration des chocs (Ici, l'économie subit des chocs instantanément, durant toute la période de simulation)
//-------------------------------------------------------------------------

shocks;

var a_shk ;

periods 1:10;

values 0.1;


var x_shk ;

periods 1:10;

values 0.1;


var up_shk ;

periods 1:10;

values 0.1;


var uw_shk ;

periods 1:10;

values 0.1;


var r_shk ;

periods 1:10;

values 0.1;


var g_shk ;

periods 1:10;

values 0.1;

end;

simul(periods=10);




