Singular Jacobian


I’m running a model and getting the following message.

DYNARE_SOLVE (solve_algo=2|4|12): the Dulmage-Mendelsohn decomposition returned a non-square block. This means that the Jacobian is singular. You may want to try another value for solve_algo.

Not quite sure what it means or how to interpret it.

As it says, the solve_algo in steady will not work. Use a different value.

Hello sir. I want to continue on this subject. My model works perfectly for stochastic simulations (steady state, etc.). I have brought the model to the data, according to Pfeifer (2013), making sure that variables in the model and in the data are well mapped. When I run the bayesian estimation without MCMC, the estimation works well from the beginning till the end. But when I add MCMC, I get the error mentioned by Mister Bhaskar.

  1. Does that mean that the mean value of the estimated parameters cannot generate a steady of the model?
  2. Isn’t it inconsistent to have that error after the estimation is done without any problem?
  3. Is there a way to fix it since changing the value of solve_algo seems not to work?

Without the codes and full error messages it is impossible to tell.

Thank you. Here are the codes
try_model22.mod (17.0 KB)
model1_ss.m (4.6 KB)
1948_2019_diff3.xlsx (41.9 KB)

  1. You should use a different mode-finder. I would suggest mode_compute=5.
  2. For many parameter draws there is an issue of finding the steady state. You should try to provide an analytical steady state.

Thank you for you answer.

  1. regarding mode_compute=5, it did not work
  2. Do you mean a steady_state_model block?
  3. what did you think about the mode_check plots? Were they okay?
  1. Yes, I mean that.
  2. No, because there is a problem with steady states.

Understood. Thank you.

I followed your advice and compute the steady analytically while still providing parameters value from a .m file (I am doing this because to the value of the fixed cost on the production function that ensure long-term zero profits, I need the steady state of some model’s variables. I hope this structure is correct).
However, when I try to estimate only one structural parameter (using uniform pdf), the options_.debug=1 tels me that the steadystate file did not compute the steady state for all the values within the uniform pdf I specified.
I hope you could have something to say about this.
I attach the files. Thank you very much again.

model1_ss.m (4.7 KB)
1984_2019_diff3.xlsx (28.8 KB)
try_model3.mod (18.2 KB)

In the same vein as of my last questions (that I hope you will find some free time to help me with), does it mean something when the initial value of the log posterior is positive, let’s say 3000, but the final value is negative and bigger in absolute term, let’s say -8000?

Which number exactly are you referring to. Dynare typically reports minus the posterior density, because we use a minimizer. In this case, the lower the better.

I mean a log density going from an initial value of 3000 to a final of -8000, does it imply something wrong with the model or observables?

No, it just means that your mode-finding moved to a region of higher posterior density.

Understood. Thank you.

Going through posts, I believe I am handling things correctly, in terms of my model, its steady state and the data. Yet, different mode finder fails to have a positive definite matrix.
For instance, mode_compute=6 is produces this error: Matrix must be positive definite … I am wondering if this is still due to some inconsistency from my side or is it possible that there might be some dynare bug. Here are my codes, if by any chance you might have some free time to look into them. Thank you.
try_model4.mod (19.4 KB)
1948_2019.xlsx (40.5 KB)

It’s not a bug, but a problem with getting to the actual mode. To me it seems as if your prior is too tight for the standard deviations. Conceptually, are


supposed to add up to 1? You are estimating two of the parameters while leaving alpham at its calibrated value.

  1. Too tight regarding every parameters?
  2. Yes they are suppose to add up to 1. But i do not see a proper way to impose that restriction. Do You mean I should estimate all the three parameters? I
  1. Mostly the standard deviations of the shocks.
  2. alpham should not be an independent parameter. Use a model-local variable

Thank you very much. I will try that.