-
Notifications
You must be signed in to change notification settings - Fork 2
Model classification (DRIMS)
A Dynare model is specified by a set of equations captured by
one vector function
where
In this formulation, any variable appearing at date
State-space is characterized by a vector
- name: `transition`
- short name: `g`
Transitions are given by a function
where
- name: `value`
- short name: `v`
The (separable) value equation defines a value
In general the Bellman equations are completely characterized by the reward function
Note that several values can be computed at once, if
- name: `value_2`
- short name: `v_2`
A more general updating equation can be useful to express non-separable utilities
or prices. In that case, we define a function
$v^{}_t = U^{}(s_t,x_t,v^{}t,s{t|1},x_{t|1},v^{}_{t|1})$
This equation defines the vector of (generalized) values
- name: `controls_lb` and `controls_ub`
- short name: `lb` and `ub`
The optimal controls must also satisfy bounds
that are function of states. There are two functions
- name: `arbitrage` (`equilibrium`)
- short name: `f`
A general formulation of the Euler equation is:
Note that the Euler equation and the boundaries interact via
"complentarity equations". Evaluated at one given state, with
the vector of controls
-
$f_i$ = 0 -
$f_i>0$ and$x_i=\underline{b}_i$ -
$f_i<0$ and$x_i=\overline{b}_i$
By definition, this set of conditions is denoted by:
$f_i = 0 \perp \underline{b}_i \leq x_i \leq \overline{b}_i$
These notations extend to a vector setting so that the Euler equations can also be written:
Specifying the boundaries together with Euler equation, or specifying them as independent equations is (read: should be) equivalent. In any case, when the boundaries are finite and occasionally binding, some attention should be devoted to write the Euler equations in a consistent manner. In particular, note, that the Euler equations are order-sensitive.
The Euler conditions, together with the complementarity conditions typically come from the Kuhn-Tucker conditions associated with the maximization problem, but that is not true in general.
- name: `expectation`
- short name: `h`
The vector of explicit expectations
- name: `expectation_2`
- short name: `h_2`
The vector of generalized explicit expectations
- name: `arbitrage_2` (`equilibrium_2`)
- short name: `f_2`
If expectations are defined using one of the two preceding definitions, the Euler equation can be rewritten as:
- name: `direct_response`
- short name: `d`
In some simple cases, there a function
Compared to the preceding Euler equation, this formulation saves computational time by removing to solve a nonlinear to get the controls implicitly defined by the Euler equation.
- name: `terminal_control`
- short name: `f_T`
When solving a model over a finite number
- name: `terminal_control_2`
- short name: `f_T_2`
When solving a model over a finite number
- name: `auxiliary`
- short name: `a`
In order to reduce the number of variables, it is useful to define auxiliary
variables
When they appear in an equation they are automatically substituted by
the corresponding expression in
The definitions for this class of models differ from the former ones by the fact that states are split into exogenous and discrete markov states, and endogenous continous states as before. Most of the definition can be readily transposed by replacing only the state variables.
For this kind of problem, the state-space, is the cartesian product
of a vector of "markov states"
The unknown controls
- name: `transition`
- short name: `g`
The continuous states
where
- name: `controls_lb`, `controls_ub`
- short name: `lb`, `ub`
The optimal controls must satisfy bounds that are function of states. There are two functions
- name: `value`
- short name: `v`
The (separable) Bellman equation defines a value
It is completely characterized by the reward function
- name: `value_2`
- short name: `v_2`
The generalized value equation defines a value
$v^{\star}t = U^{\star}(m_t,s_t,x_t,v^{\star}t,m{t|1},s{t|1},x_{t|1})$
- name: `arbitrage` (`equilibrium`)
- short name: `f`
Many Euler equations can be defined a function
See discussion about complementarity equations in the Continuous States - Continuous Controls section.
- name: `expectation`
- short name: `h`
The vector of explicit expectations
- name: `expectation_2`
- short name: `h_2`
The vector of generalized explicit expectations
- name: `arbitrage_2` (`equilibrium_2`)
- short name: `f_2`
If expectations are defined using one of the two preceding definitions, the Euler equation can be rewritten as:
- name: `direct_response`
- short name: `d`
In some simple cases, there a function
Compared to the preceding Euler equation, this formulation saves computational time by removing to solve a nonlinear to get the controls implicitly defined by the Euler equation.
- name: `direct_states`
- short name: `d_s`
For some applications, it is also useful to have a function
- name: `auxiliary`
- short name: `a`
In order to reduce the number of variables, it is useful to define auxiliary
variables
- name: `terminal_control`
- short name: `f_T`
When solving a model over a finite number
- name: `terminal_control`
- short name: `f_T_2`
When solving a model over a finite number
For DTCSCC and DTMSCC models, the following list variable types can be used (abbreviation in parenthesis): Required:
-
states
(s
) -
controls
(x
) For DTCSCC only: -
shocks
(e
) For DTMSCC only: -
markov_states
(m
) Optional: -
auxiliaries
(y
) -
values
(v
) -
values_2
(v_2
) -
expectations
(z
) -
expectations_2
(z_2
)
Several algorithm are available to solve a model, depending no the functions that are specified.
Dynare model | DTCSCC | DTMSCC | |
---|---|---|---|
Perturbations | yes | (f,g) | no |
Perturbations (higher order) | yes | (f,g) | no |
Value function iteration | (v,g) | (v,g) | |
Time iteration | (f,g),(f,g,h) | (f,g),(f,g,h) | |
Parameterized expectations | (f,g,h) | (f,g,h) | |
Parameterized expectations (2) | (f_2,g,h_2) | (f_2,g,h_2) | |
Parameterized expectations (3) | (d,g,h) | (d,g,h) | |
Endogeneous gridpoints | (d,d_s,g,h) |
In general, the models will depend on a series of scalar parameters. A reference value for the endogeneous variables is also used, for instance to define the steady-state. We call a "calibration" a list of values for all parameters and steady-state.
When a global solution is computed, continuous states need to be bounded. This can be done by specifying an n-dimensional box for them.
Usually one also want to specify a finite grid, included in this grid and the interpolation method used to evaluate between the grid points.
For DTCSCC models, the shocks follow an i.i.d. series of random variables. If the shock is normal, this one is characterized by a covariance matrix.
For DTMSCC models, exogenous shocks are specified by a two matrices P and Q, containing respectively a list of nodes and the transition probabilities.
Some autodetection is possible. For instance, some equations appearing in
f
fonctions, can be promoted (or downgraded) to expectational equation, based
on incidence analysis.