Issues with steady state, residuals, and rank condition

Hello friends,

I am working on a New Keynesian model, including banks. I have set up initial values and try to get some results. However, I face three problems:

  1. The steady-state values of some variables are not what I can get with pen and paper, e.g., the steady-state interest rate (R) given by Dynare is much larger than its steady-state value, which I derive analytically: \dfrac{1}{\beta} - 1.

  2. Even though resid; returns all residuals equal to zero, some residuals will not be zero if I change parameters. For example, \mu is the default probability of banks in my model. I can get zero residuals only if I set it as a number between 0.00 and 0.008, which is actually not realistic! There is the same issue with some other parameters.

  3. Finally, the rank condition is not satisfied. I get the following error:
    There are 10 eigenvalue(s) larger than 1 in modulus
    for 10 forward-looking variable(s)
    The rank condition ISN’T verified!
    I tried different timing settings regarding loans, deposits, and net worth, but every time I end up with the unverified rank condition.

I am really baffled. I have been working on these problems for days, but I cannot resolve the issues. I have tried simpler models with fewer equations and different values for parameters, but the problems are still there. Model diagnostics does not find a problem in the code either.
I will be thankful if someone can help me resolve these issues.
I attach the mod file for reference.

giobanking.mod (7.3 KB)

Check your equations. E.g.

0 = 1/Ce - (beta_e*(1+R))/(1+Pi(+1)*Ce(+1));

Seems to be missing a bracket:

0 = 1/Ce - (beta_e*(1+R))/((1+Pi(+1))*Ce(+1));
1 Like

Dear professor,

Thank you for your response. I corrected the equations, and now I get more reasonable steady-states. However, there are SS values that are virtually zero but not reported as zero (e.g., 6.23175e-22). Is there any way to change the precision?

Furthermore, even though the number of jump variables is equal to the number of eigenvalues larger than one, the rank condition is still not verified. I was wondering if inf or repeated eigenvalues could imply something about the problem with the model?

Also, when I change some parameters or initial values, I get different SS values but very close to previous SS values. Could this mean that there is no stable equilibrium at all, and that is why I still get the error?

Please provide the new mod-file.

Here is the new mod-file:

New.mod (7.5 KB)

Just one more thing which seems weird to me: Whenever I get SS values and set them as initial values again, the new SS values are different or the residuals are not equal to zero.

Thank you in advance.

I would focus on

Equation number 17 : -48.3018 : Augmenting factor for SDF

There must be a mistake either in the equation or the steady state computations.

1 Like

Thank you very much.

After changing some equations, I managed to solve the model without any errors. However, there is still one issue: When I put resid after initial values and before steady, some residuals of the static equations are not zero, while all residuals are zero when I write resid after steady. I am curious if this can be a problem since Dynare can still solve the model, and the rank condition is also verified.

My understanding is that the residuals after steady matter since the residuals in the first case (before steady) are just calculated using the given initial values. Am I wrong?

New1.mod (7.7 KB)

If a steady state is found, then obviously the residuals will be a 0 after calling steady; The residuals before that call will be based on the initial values. If these were computed analytically, then they may signal a problem.

1 Like