Greetings. This is my very first post.
After some practice with smaller models in Dynare, I have some questions as I work on my first big project, so I decided to kindly ask for your help. The program does run well, but I have some questions.
The model I'm programming comes from the paper "Nominal Debt Dynamics, Credit Constraints and Monetary Policy" by Graham and Wright (2007). It's a DSGE model without money in which households are split between those having binding credit constraints and those that do not, only a known proportion of loans are given on fixed rate scheme, and some of the ones on variable rate scheme change terms with a Calvo-like process.
I'm attaching the pages from the document that show the linearized model.
My questions are as follows:
1. If my variables are meant to be log-linearized deviations from their nonstochastic steady-state values, did I do well in writing them as exp(variable)? And if so, was I right in choosing 0 as the initial value to all of them? The user manual mentions doubling the variable name to indicate that it's a deviation, but how do you do that when the variable name has more than one letter? I also wrote "linear" when declaring the model, since it was already linearized.
2. After running the program, it tells me that the steady state value for ALL my variables is -1. I do not understand why.
This is what I did:
var y c1 c2 pi z d r rd rf rz n1 n2 w1 w2 mc;
predetermined_variables z rz;
varexo u;
parameters delta lambda kappa N eta beta1 beta2 gamma phi psi sigmac
sigman zeta;
/*I'm writing in capital letters the levels of the variables, whereas
the lowercase refers to log-linearized deviations from steady state. The variables are the following:
Y: Income, C1: consumption of unconstrained households, C2: consumption of
constrained households, Pi: Inflation, Z: value of a new debt contract,
D: level of debt that financial institutions are willing to lend,
R: short-term interest rate established by the central bank, which,
by assumption is the rate payable on floating rate loans with a spread of zero,
Rd: average rate payable on loans, Rf: fixed average rate payable on loans,
Rz: rate payable on new loans, N1: labor supply for unconstrained households,
N2: labor supply for constrained households, W1: real wage for unconstrained
households, W2: real wage for constrained households, MC: real marginal
cost, U: white noise "cost-push" shock. */
delta=8;
/*Quarterly steady state debt to consumption ratio of constrained households*/
lambda=0.537;
/*Consumption share of unconstrained households*/
kappa=0.5;
/*Labor income share of unconstrained households*/
N=0.2;
/*Steady state labor supply*/
eta=0.5;
/*Coefficient of lagged inflation in Phillips curve*/
beta1=0.99;
/*Discount factor of unconstrained households*/
beta2=0.95;
/*Discount factor for constrained households*/
gamma=0.75;
/*Coefficient on marginal costs in Phillips curve*/
phi=0.05;
/*Debt reset probability*/
psi=0;
/*Proportion of borrowers in fixed scheme*/
sigmac=0.5;
/*Intertemporal elasticity of substitution for consumption*/
sigman=2;
/*Intertemporal elasticity of substitution for labor*/
zeta=-1.76;
/*Coefficient in monetary policy rule*/
/*Note about some of the equations: The derivation for GW's equations 49 and 50 can
be found in a pdf I'm attaching.*/
model(linear);
exp(c1)=exp(c1(+1))-1/sigmac*(exp(r)-exp(pi(+1)));
exp(c2)=exp(y)-delta*exp(rd)+delta*(exp(d(+1))-exp(d)+exp(pi(+1)))+delta*(1-beta1)*(exp(y)-exp(d)-exp(rd));
exp(y)=lambda*exp(c1)+(1-lambda)*exp(c2);
exp(pi)=eta*exp(pi(-1))+beta1*(1-eta)*exp(pi(+1))+gamma*exp(mc)+u;
exp(n1)=sigman*(1-N)/N*(exp(w1)-exp(c1)/sigmac);
exp(n2)=sigman*(1-N)/N*(exp(w2)-exp(c2)/sigmac);
exp(w1)=exp(mc)+exp(y)-exp(n1);
exp(w2)=exp(mc)+exp(y)-exp(n2);
exp(mc)=kappa*exp(w1)+(1-kappa)*exp(w2);
exp(z(+1))-beta1*(1-phi)*exp(z(+2))=(1-beta1*(1-phi))*(exp(pi(+1))-exp(pi));
exp(d(+1))-(1-phi)*exp(d)+exp(pi(+1))+phi*(exp(pi)-exp(pi(-1)))=phi*exp(z(+1));
exp(rz)=phi*exp(r(+1))+(1-phi)*exp(rz(+1));
exp(rf)=phi*exp(rz)+(1-phi)*exp(rf(-1));
exp(rd)=psi*exp(rf)+(1-psi)*exp(r);
exp(y)=zeta*exp(pi);
end;
initval;
y=0;
c1=0;
c2=0;
pi=0;
z=0;
d=0;
r=0;
rd=0;
rf=0;
rz=0;
n1=0;
n2=0;
w1=0;
w2=0;
mc=0;
end;
steady;
check;
shocks;
var u=0.5;
end;
stoch_simul(irf=20);
Many thanks on any help.