Commit 9c216dc0 authored by Sébastien Villemot's avatar Sébastien Villemot
Browse files

Merge branch 'NK_baseline' into 'master'

Update and modernize NK_baseline.mod

See merge request !1718
parents 1abd50c2 00747b49
Pipeline #3299 passed with stages
in 68 minutes and 3 seconds
......@@ -29,11 +29,10 @@
*
* Please note that the following copyright notice only applies to this Dynare
* implementation of the model.
*/
/*
* Copyright (C) 2013-2016 Dynare Team
* Copyright (C) 2013-2020 Dynare Team
*
* This file is part of Dynare.
*
......@@ -51,72 +50,78 @@
* along with Dynare. If not, see <http://www.gnu.org/licenses/>.
*/
var d //preference shock
c //consumption
mu_z //trend growth rate of the economy (from neutral and investment specific technology)
mu_I //growth rate of investment-specific technology growth
mu_A //growth rate of neutral technology
lambda //Lagrange multiplier
R //Nominal Interest rate
PI //Inflation
r //rental rate of capital
x //investment
u //capacity utilization
q //Tobin's marginal q
f //variable for recursive formulation of wage setting
ld //aggregate labor demand
w //real wage
wstar //optimal real wage
PIstarw //optimal wage inflation
PIstar //optimal price inflation
g1 //variable 1 for recursive formulation of price setting
g2 //variable 2 for recursive formulation of price setting
yd //aggregate output
mc //marginal costs
k //capital
vp //price dispersion term
vw //wage dispersion term
l //aggregate labor bundle
phi //labor disutility shock
F; //firm profits
var d (long_name='preference shock')
c (long_name='consumption')
mu_z (long_name='trend growth rate of the economy (from neutral and investment specific technology)')
mu_I (long_name='growth rate of investment-specific technology growth')
mu_A (long_name='growth rate of neutral technology')
lambda (long_name='Lagrange multiplier')
R (long_name='Nominal Interest rate')
PI (long_name='Inflation')
r (long_name='rental rate of capital')
x (long_name='investment')
u (long_name='capacity utilization')
q (long_name='Tobin marginal q')
f (long_name='variable for recursive formulation of wage setting')
ld (long_name='aggregate labor demand')
w (long_name='real wage')
wstar (long_name='optimal real wage')
PIstarw (long_name='optimal wage inflation')
PIstar (long_name='optimal price inflation')
g1 (long_name='variable 1 for recursive formulation of price setting')
g2 (long_name='variable 2 for recursive formulation of price setting')
yd (long_name='aggregate output')
mc (long_name='marginal costs')
k (long_name='capital')
vp (long_name='price dispersion term')
vw (long_name='wage dispersion term')
l (long_name='aggregate labor bundle')
phi (long_name='labor disutility shock')
F (long_name='firm profits')
;
varexo epsd epsphi epsmu_I epsA epsm;
varexo epsd (long_name='Innovation preference shock')
epsphi (long_name='Innovation labor disutility shock')
epsmu_I (long_name='Innovation investment-specific technology')
epsA (long_name='Innovation neutral technology')
epsm (long_name='Innovation monetary policy shock')
;
predetermined_variables k;
parameters h //consumption habits
betta //discount factor
gammma1 //capital utilization, linear term
gammma2 //capital utilization, quadratic term
delta //depreciation rate
kappa //capital adjustment costs parameter
eta //elasticity of substitution between labor varieties
epsilon //elasticity of substitution between goods varieties
varpsi //labor disutility parameter
gammma //inverse Frisch elasticity
chiw //wage indexation parameter
chi //price indexation
thetap //Calvo parameter prices
thetaw //Calvo parameter wages
alppha //capital share
Rbar //steady state interest rate
PIbar //steady state inflation
gammmaR //interest smoothing coefficient Taylor rule
gammmaPI //feedback coefficient to inflation monetary policy rule
gammmay //feedback coefficient to output growth deviation in monetary policy rule
Phi //firms fixed costs
rhod //autocorrelation preference shock
rhophi //autocorrelation labor disutility shock
Lambdamu //steady state growth rate of investmentment-specific technology
LambdaA //steady state neutral technology growth
Lambdax //steady state growth rate of investment
LambdaYd //steady state growth rate of output
sigma_d //standard deviation preference shock
sigma_phi //standard deviation labor disutility shock
sigma_mu //standard deviation investment-specific technology
sigma_A //standard deviation neutral technology
sigma_m; //standard deviation preference shock
parameters h (long_name='consumption habits')
betta (long_name='discount factor')
gammma1 (long_name='capital utilization, linear term')
gammma2 (long_name='capital utilization, quadratic term')
delta (long_name='depreciation rate')
kappa (long_name='capital adjustment costs parameter')
eta (long_name='elasticity of substitution between labor varieties')
epsilon (long_name='elasticity of substitution between goods varieties')
varpsi (long_name='labor disutility parameter')
gammma (long_name='inverse Frisch elasticity')
chiw (long_name='wage indexation parameter')
chi (long_name='price indexation')
thetap (long_name='Calvo parameter prices')
thetaw (long_name='Calvo parameter wages')
alppha (long_name='capital share')
Rbar (long_name='steady state interest rate')
PIbar (long_name='steady state inflation')
gammmaR (long_name='interest smoothing coefficient Taylor rule')
gammmaPI (long_name='feedback coefficient to inflation monetary policy rule')
gammmay (long_name='feedback coefficient to output growth deviation in monetary policy rule')
Phi (long_name='firms fixed costs')
rhod (long_name='autocorrelation preference shock')
rhophi (long_name='autocorrelation labor disutility shock')
Lambdamu (long_name='steady state growth rate of investmentment-specific technology')
LambdaA (long_name='steady state neutral technology growth')
Lambdax (long_name='steady state growth rate of investment')
LambdaYd (long_name='steady state growth rate of output')
sigma_d (long_name='standard deviation preference shock')
sigma_phi (long_name='standard deviation labor disutility shock')
sigma_mu (long_name='standard deviation investment-specific technology')
sigma_A (long_name='standard deviation neutral technology')
sigma_m (long_name='standard deviation monetary policy shock')
;
//Note that the parameter naming in FV(2010) differs from FV(2006)
//Fixed parameters, taken from FV(2010), Table 2, p. 37
......@@ -177,60 +182,67 @@ FV(2006), p. 20, section 3.2.
*/
model;
//1. FOC consumption
[name='FOC consumption']
d*(c-h*c(-1)*mu_z^(-1))^(-1)-h*betta*d(+1)*(c(+1)*mu_z(+1)-h*c)^(-1)=lambda;
//2. Euler equation
[name='Euler equation']
lambda=betta*lambda(+1)*mu_z(+1)^(-1)/PI(+1)*R;
//3. FOC capital utilization
[name='FOC capital utilization']
r=gammma1+gammma2*(u-1);
//4. FOC capital
[name='FOC capital']
q=betta*lambda(+1)/lambda*mu_z(+1)^(-1)*mu_I(+1)^(-1)*((1-delta)*q(+1)+r(+1)*u(+1)-(gammma1*(u(+1)-1)+gammma2/2*(u(+1)-1)^2));
//5. FOC investment
[name='FOC investment']
1=q*(1-(kappa/2*(x/x(-1)*mu_z-Lambdax)^2)-(kappa*(x/x(-1)*mu_z-Lambdax)*x/x(-1)*mu_z))
+betta*q(+1)*lambda(+1)/lambda*mu_z(+1)^(-1)*kappa*(x(+1)/x*mu_z(+1)-Lambdax)*(x(+1)/x*mu_z(+1))^2;
//6-7. Wage setting
[name='Wage setting 1']
f=(eta-1)/eta*wstar^(1-eta)*lambda*w^eta*ld+betta*thetaw*(PI^chiw/PI(+1))^(1-eta)*(wstar(+1)/wstar*mu_z(+1))^(eta-1)*f(+1);
[name='Wage setting 2']
f=varpsi*d*phi*PIstarw^(-eta*(1+gammma))*ld^(1+gammma)+betta*thetaw*(PI^chiw/PI(+1))^(-eta*(1+gammma))*(wstar(+1)/wstar*mu_z(+1))^(eta*(1+gammma))*f(+1);
//8-10. firm's price setting
[name='Firm price setting 1']
g1=lambda*mc*yd+betta*thetap*(PI^chi/PI(+1))^(-epsilon)*g1(+1);
[name='Firm price setting 2']
g2=lambda*PIstar*yd+betta*thetap*(PI^chi/PI(+1))^(1-epsilon)*PIstar/PIstar(+1)*g2(+1);
[name='Firm price setting 3']
epsilon*g1=(epsilon-1)*g2;
//11-12. optimal inputs
[name='Optimal capital labor ratio']
u*k/ld=alppha/(1-alppha)*w/r*mu_z*mu_I;
[name='Marginal costs']
mc=(1/(1-alppha))^(1-alppha)*(1/alppha)^alppha*w^(1-alppha)*r^alppha;
//13. law of motion wages
[name='law of motion wages']
1=thetaw*(PI(-1)^chiw/PI)^(1-eta)*(w(-1)/w*mu_z^(-1))^(1-eta)+(1-thetaw)*PIstarw^(1-eta);
//14. law of motion prices
[name='law of motion prices']
1=thetap*(PI(-1)^chi/PI)^(1-epsilon)+(1-thetap)*PIstar^(1-epsilon);
//15. Taylor Rule
[name='Taylor Rule']
R/Rbar=(R(-1)/Rbar)^gammmaR*((PI/PIbar)^gammmaPI*((yd/yd(-1)*mu_z)/exp(LambdaYd))^gammmay)^(1-gammmaR)*exp(epsm);
//16-17. Market clearing
[name='Resource constraint']
yd=c+x+mu_z^(-1)*mu_I^(-1)*(gammma1*(u-1)+gammma2/2*(u-1)^2)*k;
[name='Aggregate production']
yd=(mu_A*mu_z^(-1)*(u*k)^alppha*ld^(1-alppha)-Phi)/vp;
//18-20. Price and wage dispersion terms
[name='Aggregate labor market']
l=vw*ld;
[name='LOM Price dispersion term']
vp=thetap*(PI(-1)^chi/PI)^(-epsilon)*vp(-1)+(1-thetap)*PIstar^(-epsilon);
[name='LOM Wage dispersion term']
vw=thetaw*(w(-1)/w*mu_z^(-1)*PI(-1)^chiw/PI)^(-eta)*vw(-1)+(1-thetaw)*(PIstarw)^(-eta);
//21. Law of motion for capital
[name='Law of motion for capital']
k(+1)*mu_z*mu_I-(1-delta)*k-mu_z*mu_I*(1-kappa/2*(x/x(-1)*mu_z-Lambdax)^2)*x=0;
//22. Profits
[name='Profits']
F=yd-1/(1-alppha)*w*ld;
//23. definition optimal wage inflation
[name='definition optimal wage inflation']
PIstarw=wstar/w;
//exogenous processes
//24. Preference Shock
[name='Preference Shock']
log(d)=rhod*log(d(-1))+epsd;
//25. Labor disutility Shock
[name='Labor disutility Shock']
log(phi)=rhophi*log(phi(-1))+epsphi;
//26. Investment specific technology
[name='Investment specific technology']
log(mu_I)=Lambdamu+epsmu_I;
//27. Neutral technology
[name='Neutral technology']
log(mu_A)=LambdaA+epsA;
//28. Defininition composite technology
[name='Defininition composite technology']
mu_z=mu_A^(1/(1-alppha))*mu_I^(alppha/(1-alppha));
end;
......
......@@ -15,6 +15,23 @@ function [ys,params,check] = NK_baseline_steadystate(ys,exo,M_,options_)
% - check [scalar] set to 0 if steady state computation worked and to
% 1 of not (allows to impose restrictions on parameters)
% Copyright (C) 2013-2020 Dynare Team
%
% This file is part of Dynare.
%
% Dynare is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% Dynare is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see <http://www.gnu.org/licenses/>.
% read out parameters to access them with their name
NumberOfParameters = M_.param_nbr;
for ii = 1:NumberOfParameters
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment