# Control Variables in a DSGE model

Hi.
How we can detect control variables in a DSGE model ?

I assume you are concerend with state-space modeling (i.e. a representation of the first-order perturbation approximation of the policy functions):
x_t = A x_{t-1} + B u_t\\ y_t = C x_{t-1} + D u_t
where x_t denote state variables and y_t are control variables.

• If control variables are “observable” variables, then they are declared by the user using the VAROBS statement
• static variables: those that appear only at the current period, but not at the past or future period. Their number is in `M_.nstatic`.
• purely backward (or predetermined) variables}: those that appear only at the past period, possibly at the current period, but not at the future period. Their number is `M_.npred`.
• purely forward variables: those that appear only at the future period, possibly at the current period, but not at the past period. Their number is `M_.nfwrd`.
• mixed variables: those that appear both at the past and future period, and possibly at the current period. Their number is `M_.nboth`.
Note that each variables falls into one category, and we thus have the following identity: `M_.endo_nbr = M_.nstatic + M_.npred + M_.nboth + M_.fwrd`
The state variables of the model are the predetermined and mixed variables. Their number is `M_.nspred = M_.npred + M_.nboth`.
• Lastly, you can also define control variables as all endogenous variables. This is actually what you get when you look into `oo_.dr.ghx` and `oo_.dr.ghu` for all endgenous variables, note that these are your C and D matrices in the above notation. If you also want the A and B matrix, then first create an index for states:
``````indx = [M_.nstatic+(1:M_.nspred)]';