# Model with durable good - rank condition ISN'T verified

**URL:** https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049
**Category:** General DSGE Modeling
**Created:** [20 January 2020 19:13 UTC](https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049 "2020-01-20T19:13:05Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![paolotardini](https://forum.dynare.org/letter_avatar_proxy/v4/letter/p/85f322/32.png) [@paolotardini](https://forum.dynare.org/u/paolotardini)
#### Post date: [20 January 2020 19:13 UTC](https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049/1 "2020-01-20T19:13:05Z")

</div>

Dear all,

I am trying to write a New Keynesian model with a non-durable and a durable good. The non-durable good features sticky prices; the durable good features flexible prices.

The economy presents a monetary authority that follows a Taylor rule that tracks only inflation for the non-durable good.

I should also add that for simplicity I assume that the depreciation rate of the durable good is zero (delta=0).

I suppose a monetary shock.

Upon running Dynare, I obtain the error message: “There are 4 eigenvalue(s) larger than 1 in modulus  
for 5 forward-looking variable(s) The rank condition ISN’T verified!”

Also:

"Error using print\_info (line 45)  
Blanchard Kahn conditions are not satisfied: indeterminacy

Error in stoch\_simul (line 100)  
print\_info(info, options\_.noprint, options\_);

Error in RANK\_durprod\_dgflex (line 330)  
info = stoch\_simul(var\_list\_);

Error in dynare (line 235)  
evalin(‘base’,fname) ;"

Please find attached the Dynare file with the code of the model.

What mistake am I making? I cannot figure out how to obtain determinacy. Any help would be much appreciated.

[Model\_durprod\_dgflex.mod](https://forum.dynare.org/uploads/short-url/dNWBiLvlIQR6PrAoTDM1HEv6Ef0.mod) (7.4 KB)

Please find attached a pdf containing the model’s equations, variables, parameters and steady state variables’ values.

[Thesis\_model\_dg.pdf](https://forum.dynare.org/uploads/short-url/qTMiywTmD9oBRq4q7qzFNbmgeic.pdf) (230.1 KB)

Thank you,  
Paolo

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [24 January 2020 10:54 UTC](https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049/2 "2020-01-24T10:54:46Z")

</div>

Your first order condition for durables looks strange. How did you derive it? I am puzzled by marginal utility tomorrow not pre-multiplying all of the right side.

---

<div class="post-metadata">

### Author: ![paolotardini](https://forum.dynare.org/letter_avatar_proxy/v4/letter/p/85f322/32.png) [@paolotardini](https://forum.dynare.org/u/paolotardini)
#### Post date: [27 January 2020 09:58 UTC](https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049/3 "2020-01-27T09:58:38Z")

</div>

@jpfeifer,

I retrieve the First Order Condition (FOC) for durables so:

I want to maximize the discounted sum of instantaneous utilities:

U(C\_t,K\_{t},N\_t) = (1-\alpha)\log C\_t + \alpha \log (K\_{t}) - \frac{(N\_t)^{1+\varphi}}{1+\varphi}

subject to the Budget Constraint (BC):

C\_t = W\_{r,t}N\_t -Z\_{t+1} +\frac{1+i\_{t-1}}{1+\pi\_{t}}B\_t-v\_{C,t}(\omega\_{C,t+1}-\omega\_{C,t})+ \omega\_{C,t}D\_{C,t} -q\_t[K\_{t+1}-(1-\delta)K\_t]+\omega\_{K,t}D\_{K,t}-v\_{K,t}(\omega\_{K,t+1}-\omega\_{K,t})

I substitute C\_t with its expression from the BC; I also use the Bellman equation, whereby the maximum of the discounted value of istantantaneous utilities at time t, expressed as \mathcal{W}\_t, is:

\mathcal{W}\_t= \quad \sup\limits\_{X\_t^D} U + \beta E\_t \left\{ \mathcal{W}\_{t+1} \right\}

where X\_t^D is the demand for new durable good at time t, namely: X\_t^D=K\_{t+1}-(1-\delta)K\_t.

I apply the Envelope theorem (whereby, roughly, \mathcal{W'}\_{t+1}=U'\_{t+1}) and take the FOC with respect to X\_t^D. Notice that X\_t^D determines K\_{t+1} and not K\_t.

FOC\_{X\_t^D}: \quad q\_t \frac{1-\alpha}{C\_t} = \beta E\_t\left\{ (1-\delta)(q\_{t+1}) \frac{1-\alpha}{C\_{t+1}} + \frac{\alpha}{K\_{t+1}} \right\}

The expression is so because:

FOC\_{X\_t^D}: (1-\alpha)\frac{\partial logC\_t}{\partial X\_t^D} + \beta E\_t \left\{ (1-\alpha) \frac{\partial logC\_{t+1}}{\partial X\_t^D} + \alpha \frac{\partial logK\_{t+1}}{\partial X\_t^D} \right\} = 0

Notice that:

(1) \quad (1-\alpha)\frac{\partial logC\_t}{\partial X\_t^D} = (1-\alpha)\frac{\partial logC\_t}{\partial C\_t}\frac{\partial C\_t}{\partial X\_t^D}= (1-\alpha) \frac{1}{C\_t} q\_t;  
 (2) \quad (1-\alpha)\frac{\partial logC\_{t+1}}{\partial X\_t^D} = (1-\alpha)\frac{\partial logC\_{t+1}}{\partial C\_{t+1}}\frac{\partial C\_{t+1}}{\partial X\_t^D}= - (1-\alpha) \frac{1}{C\_{t+1}} q\_{t+1}(1-\delta);  
 (3) \quad \alpha \frac{\partial logK\_{t+1}}{\partial X\_t^D}= \alpha \frac{1}{K\_{t+1}};

Notice also that the BC for C\_{t+1} is so:

C\_{t+1} = [...] - q\_{t+1}[K\_{t+2}-(1-\delta)K\_{t+1}] = [...] - q\_{t+1}[K\_{t+2}- (1-\delta)(X\_t^D + (1-\delta)K\_t]

This is why in (2) I have the expression: \frac{\partial C\_{t+1}}{\partial X\_t^D}= - q\_{t+1}(1-\delta)

I hope everything is clear,  
Let me know if you are interested in further clarifications

---

<div class="post-metadata">

### Author: ![paolotardini](https://forum.dynare.org/letter_avatar_proxy/v4/letter/p/85f322/32.png) [@paolotardini](https://forum.dynare.org/u/paolotardini)
#### Post date: [27 January 2020 10:25 UTC](https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049/4 "2020-01-27T10:25:29Z")

</div>

I have corrected the model; now Dynare is running and gives reasonable Impulse Response Functions (IRFs). Here is the updated version of the mod file.

[Model\_durprod\_dgflex.mod](https://forum.dynare.org/uploads/short-url/6q0XFzorOZh1Jau2HzfqWHSF6ey.mod) (8.5 KB)

I have two questions concerning it. I would be very grateful if you found the time to take a look at them:

1. Do you think I have correctly expressed the inflation for durable goods (dg)? I define it as the ratio between the relative price of dg at time t and the relative price at time t-1, multiplied by the inflation for non-durable goods (ndg) at time t:

1 + \pi\_{K,t} = (\frac{q\_t}{q\_{t-1}})(1 + \pi\_{C,t})

where q\_t = \frac{P\_{K,t}}{P\_{C,t}}; \pi\_{C,t} is inflation for prices of ndg at time t, namely \frac{P\_{C,t}-P\_{C,t-1}}{P\_{C,t-1}}; P\_{K,t} is the level of prices of dg at time t; P\_{C,t} is the level prices of ndg at time t.

The expression on the rhs simplifies:  
 \frac{P\_{K,t}}{P\_{C,t}} \frac{P\_{C,t-1}}{P\_{K,t-1}} \left(1 + \frac{P\_{C,t}-P\_{C,t-1}}{P\_{C,t-1}} \right) = \frac{P\_{K,t}}{P\_{C,t}} \frac{P\_{C,t-1}}{P\_{K,t-1}} \frac{P\_{C,t}}{P\_{C,t-1}} = \frac{P\_{K,t}}{P\_{K,t-1}} = 1 + \frac{P\_{K,t}-P\_{K,t-1}}{P\_{K,t-1}} = 1 + \pi\_{K,t}

Computations seem correct to me, but I do not know whether Dynare correctly interprets the expression!

1. The IRF for \pi\_{K,t} is strange: the variation is very negative at the beginning, but then one sees small positive and decreasing variations. I interpret this fact so: initially, the level of prices for dg goes below its steady state level (i.e. inflation is very negative), then it slowly increases up to its steady state level (i.e. the inflation is positive, but decreasingly so, until it reaches zero). In other words, the initial decrease in the level of prices is excessive with respect to its steady state level. What do you think of my interpretation? I find it is in line with what says Barsky et al. (2007, Sticky price models and durable goods) at page 6 out of 20 of their pdf file, on the bottom right corner: “Also, while nondurables prices rise slowly, the price of durables overshoots its eventual level.” (they talk about a decrease in the interest rate, while I talk about an increase).

Here is a picture of the IRF for \pi\_{K,t} after a positive shock to the interest rate:

![Schermata 2020-01-27 alle 11.21.47](https://forum.dynare.org/uploads/default/original/2X/f/f7f9a6fa1fc3e04e555c27ea23d7a843d2e805eb.png)

Here is the link to the paper I am referring to, by Barksy et al:

[https://pubs.aeaweb.org/doi/pdfplus/10.1257/aer.97.3.984](https://pubs.aeaweb.org/doi/pdfplus/10.1257/aer.97.3.984)

1. Feeding the model I have uploaded to Dynare, are IRFs to be interpreted as absolute variations from the SS or as percentage variations from the SS. I believe IRFs are to be interpreted as absolute variations. What do you think about it?

Thank you,  
Paolo

PS Please, also find here the version of the model where all variables are expressed in exp(.), ready for log-linearization. Notice that interest rates and inflation are left in their linear form. All the variable that can be zero in steady state are left in their linear form.

[Model\_durprod\_dgflex\_loglin\_aut.mod](https://forum.dynare.org/uploads/short-url/e9i11aCJm0263dYdsVU2Gtuz11k.mod) (9.0 KB)

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [28 January 2020 13:32 UTC](https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049/5 "2020-01-28T13:32:35Z")

</div>

1. Without knowing the model in more detail it is impossible to tell. What you describe sounds sensible, but in the end depends on your numeraire, i.e. in which currency/units you want to express it.
2. Such a behavior is not unusual with jump variables, so I am not too surprised.
3. Yes, your model provides linear deviations. I would not go for a full substitution. See

> [@Question about understanding irfs in dynare](https://forum.dynare.org/t/question-about-understanding-irfs-in-dynare/10622/4):
>
> To be more precise: it depends on how the variables in your model are measured. As @stepan-a says, Dynare conducts a linearization. If you for example have a nonlinear model and your model variable is simply the level of output, the IRF will measure the difference between the variable and its steady state (or its mean at higher order). This is the case with [https://github.com/DynareTeam/dynare/blob/master/examples/example1.mod](https://github.com/DynareTeam/dynare/blob/master/examples/example1.mod) In contrast, if your model variable already measures percentage…

---

<div class="post-metadata">

### Author: ![paolotardini](https://forum.dynare.org/letter_avatar_proxy/v4/letter/p/85f322/32.png) [@paolotardini](https://forum.dynare.org/u/paolotardini)
#### Post date: [29 January 2020 07:05 UTC](https://forum.dynare.org/t/model-with-durable-good-rank-condition-isnt-verified/15049/6 "2020-01-29T07:05:33Z")

</div>

@jpfeifer,

Thank you so much for your clarification and for always being available.

My numeraire in the economy is the price of non-durable goods, i.e. P\_{C,t}. I divide the budget constraint by P\_{C,t}, because all nominal variables are expressed in terms of the price of the non-durable good.

Thank you again,  
Paolo
