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;
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®-exp(pi(+1)));
exp(c2)=exp(y)-deltaexp(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))+gammaexp(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)=kappaexp(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)))=phiexp(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®;
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;

check;

shocks;
var u=0.5;
end;

stoch_simul(irf=20);

Many thanks on any help.
Lineralized model.pdf (82.9 KB)
Derivation.pdf (56.6 KB)

You seem to be confusing something. The exp()-substitution is for nonlinear models. If your model has been log-linearized manually, you must not put the variables in exp(). Take e.g. a look at Pfeifer(2013): “A Guide to Specifying Observation Equations for the Estimation of DSGE Models” sites.google.com/site/pfeiferecon/Pfeifer_2013_Observation_Equations.pdf.