I know that Dynare (which sits on top of Matlab) can solve many kinds of dynamic stochastic general equilibrium (DSGE) and overlapping generations (OLG) models. I also know that Dynare can handle some sorts of adjustment costs. For example, I have seen convex adjustment cost examples in Dynare. In particular, The Macroeconomic Model Data Base provides on the order of 50 models compatible with Dynare and the user manual indicates several models (e.g. NK_IR04 and US_NFED0) with quadratic (a type of convex) adjustment costs.

Can Dynare solve models with non-convex adjustment costs like An equilibrium model of lumpy housing investment (Iacoviello and Pavan (2008)) or Housing and debt over the life cycle and over the business cycle (Iacoviello and Pavan (2013))? Non-convex has a specific mathematical meaning, but in the context of these papers it indicates that adjustment costs that are not proportional to the amount of adjustment. Instead, the adjustment costs have a fixed-cost proportional to the current asset value. However, there are other forms of non-convex adjustment cost. If Dynare can solve any model with any sort of non-convex adjustment costs that is of interest.

If models with these adjustment costs can be solved with Dynare, please provide an example or a link to an example (if possible). If Dynare currently cannot solve these models is there any published code that can do so? Even sample code for a specific model solution rather than a general product like Dynare would be helpful.

More details on non-convex adjustment costs:

I draw my language here from a A Model of Housing in the Presence of Adjustment Costs: A Structural Interpretation of Habit Persistence (Flavin and Nakagawa (2008))

At the instant the house is sold, the household pays a transactions cost proportional to the value of the house sold, so that wealth also changes discontinuously....The housing model developed in Section I invokes a fourth set of assumptions: utility depends nonseparably on nondurable consumption and on housing, nondurable consumption is costlessly adjustable, but housing is subject to a nonconvex adjustment cost ($\lambda > 0 $).

Perhaps this language is non-standard but that's a quote from a paper in the AER, and when I've discussed it with others people seem to know what I'm talking about. The two mentioned papers don't use that language but do have the same rough form, that transaction costs are not increasing in the degree of the adjustment but rather that any use of adjustment (other than a small bit, perhaps for depreciation or unit improvement perhaps) triggers a cost related to the state variables instead of the control variables. The paper On the Nature of Capital Adjustment Costs (Cooper and Haltiwanger (2005)) seems to use nonconvex adjustment costs in the same way in a firm capital setting.

Building upon the analysis of Abel and Eberly [1999], Cooper, Haltiwanger and Power [1999] and Caballero and Engel [1999], during periods of investment plants incur a fixed adjustment cost. Generally, these non-convex costs of adjustment are intended to capture indivisibilities in capital, increasing returns to the installation of new capital and increasing returns to retraining and restructuring of production activity. These fixed adjustment costs represent the need for plant restructuring, worker retraining and organizational restructuring during periods of intensive investment

  • 1
    $\begingroup$ Upon closer reading, Iacoviello and Pavan do indeed have fixed adjustment cost, sorry for confusion. $\endgroup$
    – ivansml
    Jan 14, 2015 at 1:00

2 Answers 2


Short answer: no.

Dynare, and linearization/perturbation methods in general, are designed for solving

  • smooth models
  • approximated around a single point in state space (the steady state).

A model with fixed cost is typically non-smooth, and its behavior away from the steady state may be very different, if e.g. the firm switches from investing to not investing. On the most practical level, a model with fixed cost will typically include equation such as

$$ V = \max \left\{ V^{\text{invest}}, V^{\text{not invest}} \right\}, $$

which cannot be entered into Dynare, because max operator is not supported. On the other hand, first order conditions for convex (e.g. quadratic) adjustment cost are still smooth (one simply adds additional terms to Euler equation for investment) and thus can be easily solved with Dynare.

To actually compute optimal policy with fixed costs, one has typically to use global method, e.g. value function iteration. I'm not aware of any standardized toolbox for solving such problems, so you may need to code your own.

PS: there are some modelling tricks that make the problem smoother, typically in a setting with many, possibly heterogeneous agents/firms. For example, Thomas (2002) keeps track of number of firms depending on how long they didn't invest, and solves the model with standard linearization on this extended state space. Khan & Thomas (2007) assume that the fixed cost is random and iid over time and across firms, so one can average over the realization of fixed cost to obtain smooth value functions. Miao & Wang (2014) use a similar approach in a model with constant returns to scale and show how it aggregates to a version of representative-firm model with only convex adjustment costs.

  • 1
    $\begingroup$ @Bryce But in CEE, the cost is not binding in equilibrium (and as I understand it, its main purpose is to achieve zero average profits). What exactly do you have in mind by state-contingent cost? $\endgroup$
    – ivansml
    Jan 13, 2015 at 23:24
  • $\begingroup$ I re-read the papers OP mentioned, and I agree with you now. I think OP is misunderstanding the non-convex costs, because both papers incur a discontinuity in the adjustment cost functions. This quote in the original post misrepresents what the papers are doing: "Non-convex has a specific mathematical meaning but the context of these papers it indicates adjustment costs that are not proportional to the amount of adjustment. Instead the adjustment costs have a fixed cost proportional to the current asset value." $\endgroup$
    – Bryce
    Jan 13, 2015 at 23:44
  • $\begingroup$ @Bryce I hadn't really looked at those papers either, but I agree, it looks like they don't deal with fixed adj. cost as usually defined (though the latter has transaction cost proportionate to absolute value of adjustment, which is also non-smooth). Perhaps OP should clarify. $\endgroup$
    – ivansml
    Jan 13, 2015 at 23:57
  • 1
    $\begingroup$ @MichaelGreinecker Formally this might be possible, but then still there's the issue whether a local approximation away from the switching point could capture the behavior of the function. For example, if I want to approximate $f(x) = \max \{ x^2, 1 \}$ with Taylor expansion around $x=2$, even if I replace max with its smooth version, I'd guess the approximation will likely be poor for $x < 1$. $\endgroup$
    – ivansml
    Jan 16, 2015 at 1:48
  • 1
    $\begingroup$ @Bkay Yes, most models involve maximization, but in order to solve them on a computer, we usually need to derive first order conditions in the form of equations. Dynare expects that the model is described by conditions more-or-less in the form of $F(x_{t-1},x_t,x_{t+1},\epsilon_t) = 0$, where $F: \mathbb{R}^{3 n_x + n_\epsilon} \rightarrow \mathbb{R}^{n_x}$ should be differentiable function. $\endgroup$
    – ivansml
    Jan 16, 2015 at 17:59

It is generally not possible to make a sharp statement about the types of non-convex costs that Dynare can handle. Many different factors come into play about whether a model can be "solved" by Dynare or not. Is the steady-state correctly defined? Is the model stationary? Is the model differentiable everywhere in the ergodic set? Are the number of endogenous and exogenous variables equal to the number of equations? Is the model Blanchard-Kahn stable?

But, to answer your question, can Dynare solve a model with a state-contingent fixed cost? Yes. This is not difficult, you should try to create one yourself. Try modifying a simple RBC model with capital and bonds. The trouble is not inducing the cost, but rather finding the steady state, which can be quite onerous if not done cleverly.

Dynare, however, cannot solve Iacoviello and Pavan 2013 because of the min function found in a borrowing constraint. This min function induces a point in the ergodic set which is not differentiable. Dynare numerically approximates optimal policy functions about a steady state using perturbation methods. This requires employing the implicit function theorem to build out Taylor expansions of the optimal policies, hence you must be able to take derivatives everywhere within the ergodic set.

  • $\begingroup$ Can you provide guidance on changes to the mod files to implement an example of a non-convex transaction cost? I looked for a while for an example of how to do this in Dynare before posting. I not only didn't find out how to do this I couldn't even find documentation that it was possible to do so, thus the question. $\endgroup$
    – BKay
    Jan 13, 2015 at 18:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.