|
|
Since Dynare 4.1, the Dynare preprocessor modifies the model given by the user, under certain circumstances, by adding auxiliary variables to it.
|
|
|
|
|
|
Auxiliary variables are created in the following cases:
|
|
|
* for endogenous variables with a lag or a lead of two or more (only in stochastic contexts in Dynare 4.1, in all cases in Dynare >= 4.2)
|
|
|
* for exogenous variables with a lag or a lead, only in stochastic contexts
|
|
|
* when the EXPECTATION operator is used.
|
|
|
|
|
|
Auxiliary variables are always endogenous variables. Internally, the indices of the original endogenous (as declared by the user) are in the range `1:M_.orig_endo_nbr`. Auxiliary variables have indices in the range `M_.orig_endo_nbr+1:M_.endo_nbr`.
|
|
|
|
|
|
In most cases, auxiliary equations are added along with auxiliary variables, in order to keep equal the number of equations and endogenous.
|
|
|
|
|
|
In order to get information about auxiliary variables and equations added by the preprocessor, the `write_latex_dynamic_model` and `write_latex_static_model` commands can be useful tools.
|
|
|
|
|
|
The vector structure `M_.aux_vars` also contains information about auxiliary variables. For each auxiliary variable, the following fields are declared:
|
|
|
* `M_.aux_vars(i).endo_index`: the index of the auxiliary variable, in the range `M_.orig_endo_nbr+1:M_.endo_nbr`
|
|
|
* `M_.aux_vars(i).type`: an integer representing the type of the auxiliary variable (see below for the list of types).
|
|
|
The structure can also contain other informations depending on the type of the auxiliary variable.
|
|
|
|
|
|
# Auxiliary variable for endogenous with lead >= 2
|
|
|
|
|
|
This is an auxiliary variable which is a substitute for an expression in the original model where a lead of 2 or more on an endogenous variable appears.
|
|
|
|
|
|
The name of such an auxiliary variable begins with `AUX_ENDO_LEAD_`.
|
|
|
|
|
|
This kind of auxiliary variable has `M_.aux_vars(i).type = 0`.
|
|
|
|
|
|
# Auxiliary variable for endogenous with lag >= 2
|
|
|
|
|
|
This is an auxiliary variable which is a substitute for an endogenous variable in the original model which has a lag of 2 or more.
|
|
|
|
|
|
The name of such an auxiliary variable begins with `AUX_ENDO_LAG_`.
|
|
|
|
|
|
`M_.aux_vars(i).orig_index` contains the index of the endogenous variable for which it is a substitute, and `M_.aux_vars(i).orig_lead_lag` contains the lag of the original variable (as a negative value).
|
|
|
|
|
|
This kind of auxiliary variable has `M_.aux_vars(i).type = 1`.
|
|
|
|
|
|
# Auxiliary variable for exogenous with a lead
|
|
|
|
|
|
This is an auxiliary variable which is a substitute for an expression in the original model where a lead on an exogenous variable appears.
|
|
|
|
|
|
The name of such an auxiliary variable begins with `AUX_EXO_LEAD_`.
|
|
|
|
|
|
This kind of auxiliary variable has `M_.aux_vars(i).type = 2`.
|
|
|
|
|
|
# Auxiliary variable for exogenous with a lag
|
|
|
|
|
|
This is an auxiliary variable which is a substitute for an exogenous variable in the original model which has a lag.
|
|
|
|
|
|
The name of such an auxiliary variable begins with `AUX_EXO_LAG_`.
|
|
|
|
|
|
`M_.aux_vars(i).orig_index` contains the index of the exogenous variable for which it is a substitute, and `M_.aux_vars(i).orig_lead_lag` contains the lag of the original variable (as a negative value).
|
|
|
|
|
|
This kind of auxiliary variable has `M_.aux_vars(i).type = 3`.
|
|
|
|
|
|
# Aux var for expectation operator using the (full) information set of another period
|
|
|
|
|
|
This is an auxiliary variable which is a substitute for an expression like `EXPECTATION(-1)(...)`.
|
|
|
|
|
|
The name of such an auxiliary variable begins with `AUX_EXPECT_LEAD_` or `AUX_EXPECT_LAG_`.
|
|
|
|
|
|
This kind of auxiliary variable has `M_.aux_vars(i).type = 4`.
|
|
|
|
|
|
# Auxiliary variable for the differentiate of a forward variable (since 4.4)
|
|
|
|
|
|
This is an auxiliary variable which is a substitute for a forward variable, when the `differentiate_forward_vars` option of `model` is used.
|
|
|
|
|
|
The name of such an auxiliary variable begins with `AUX_DIFF_FWRD_`.
|
|
|
|
|
|
`M_.aux_vars(i).orig_index` contains the index of the endogenous variable of which it is the differentiate.
|
|
|
|
|
|
This kind of auxiliary variable has `M_.aux_vars(i).type = 5`.
|
|
|
|
|
|
# Auxiliary variable for multipliers for first order conditions of the Ramsey problem (since 4.3)
|
|
|
|
|
|
This is an auxiliary variable which is created for a lagrange multiplier of the ramsey problem.
|
|
|
|
|
|
The name of such an auxiliary variable begins with `MULT_i`, where `i` is the equation number with which the multiplier is associated.
|
|
|
|
|
|
`M_.aux_vars(i).eq_nbr` contains the number of the equation (constraint) with which the multiplier is associated.
|
|
|
|
|
|
This kind of auxiliary variable has `M_.aux_vars(i).type = 6`. |