Computing steady state reassigning a parameter

After working with a stochastic model in Dynare, it works fine so far. But recently I found that in computing the steady state I use a parameter value for calculating some variable’s steady, but after that I re-assign the value of the mentioned parameter. Besides, it computes the steady correctly.

Let me explain with a simple reduced example. This is my steady state file:

% Steady state file
% Header

k_t = ((1-alpa)*mc_t*a_t*(n_t)^(alpa)/(r_t))^(1/alpa);
I_t = delta*k_t;

I_Y = 0.2; % Invest/Prod. steady state ratio
Y_t = I_t/I_Y;
alpa = 1-k_t*r_t/(mc_t*y_t);

% rest of the file

Note that I use alpa for computing steady state of k_t, and then “exogenize” steady state of Y_t in order to be compatible with the I_Y ratio, and consequently I “endogenize” alpa and redefine it after haven used it. Previous to all that, alpa is fixed in the .mod file with value 0.5, and then after the process it gets changed consequently to around 0.2. The steady-state and the stochastic simulation run perfectly.

I thought this was not possible when using steady-state file, but seems like the values get updated automatically, is that a good practice? Also, how does the values get “updated”?


Your steady state file will update the parameters. This is a feature often used for calibration exercises like yours. This is taken care of by the lines:

for iter = 1:length(M_.params) %update parameters set in the file
  eval([ 'params(' num2str(iter) ') = ' M_.param_names{iter} ';' ])

in e.g. examples/NK_baseline_steadystate.m · master · Dynare / dynare · GitLab

1 Like