The information on this page is outdated. The current version is at https://git.dynare.org/Dynare/dynare/-/wikis/Auxiliary-variables
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 in Dynare ≤ 4.6, in all cases in Dynare ≥ 4.7)
- 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 aux var.
Aux var for endogenous with lead >= 2
This is an aux var 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 aux var begins with AUX_ENDO_LEAD_.
This kind of aux var has M_.aux_vars(i).type = 0.
Aux var for endogenous with lag >= 2
This is an aux var 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 aux var 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 aux var has M_.aux_vars(i).type = 1.
Aux var for exogenous with a lead
This is an aux var which is a substitute for an expression in the original model where a lead on an exogenous variable appears.
The name of such an aux var begins with AUX_EXO_LEAD_.
This kind of aux var has M_.aux_vars(i).type = 2.
Aux var for exogenous with a lag
This is an aux var which is a substitute for an exogenous variable in the original model which has a lag.
The name of such an aux var 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 aux var has M_.aux_vars(i).type = 3.
Aux var for expectation operator using the (full) information set of another period
This is an aux var which is a substitute for an expression like EXPECTATION(-1)(...).
The name of such an aux var begins with AUX_EXPECT_LEAD_ or AUX_EXPECT_LAG_.
This kind of aux var has M_.aux_vars(i).type = 4.
Aux var for the differentiate of a forward variable (since 4.4)
This is an aux var which is a substitute for a forward variable, when the differentiate_forward_vars option of model is used.
The name of such an aux var 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 aux var has M_.aux_vars(i).type = 5.
Aux var for multipliers for first order conditions of the Ramsey problem (since 4.3)
This is an aux var which is created for a lagrange multiplier for the ramsey problem.
The name of such an aux var 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 aux var has M_.aux_vars(i).type = 6.