Posterior mean does not compute the steady state


I am estimating a model for which everything works fine, until after the RWMH is complete. Then, i assume, when computing smoothed series, I get an error that the steadystate file did not compute the steady state. The estimated posterior mean in fact produces an explosive steady state. This is despite the fact, that my steadystate file contains checks with return, whenever such a parametrization is drawn.

The Error in full:
Error using print_info (line 32)
The steadystate file did not compute the steady state

Error in DsgeSmoother (line 133)

  • print_info(info,options_.noprint, options_);*

Error in dynare_estimation_1 (line 607)

  •        [atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp,Trend,state_uncertainty,M_,oo_,bayestopt_]*
  •        =*
  •        DsgeSmoother(xparam1,dataset_.nobs,transpose(,dataset_info.missing.aindex,dataset_info.missing.state,M_,oo_,options_,bayestopt_,estim_params_);*

Error in dynare_estimation (line 118)

  • dynare_estimation_1(var_list,dname);*

Error in EnvironmentB_Substitutability.driver (line 627)

Error in dynare (line 281)

  • evalin(‘base’,[fname ‘.driver’]);*

The checks in the steady state file:
[x, fval,exitflag] = fsolve(F,x0,options);

if exitflag<1 || any(~isreal(fval))

I don’t know what is going wrong. Does anyone have an idea what is the problem and if there exists a fix that can be added to the steadystate file, such that the mean will compute the steady state?

For any help I would be very grateful.

Short edit: I have the feeling, that the code may even work as intended. Meaning that the mean of the posterior is not guaranteed to compute the steady state and there may not be anything to do about that. Or is this wrong?

The posterior mean that Dynare computes is just an estimate based on taking the arithmetic average of your draws, it is not an actual draw that was accepted by the MCMC. So such behavior (although weird) can happen. You should manually evaluate the steady state at these values (i.e. set a break point) to see which steady state of which variable is the problematic one. Then see which parameters are necessary to compute that and whether the posterior for those parameters looks well behaved and has converged.

Thank you very much for confirming this and your helpful comments!