Rank condition not verified, but all variables seem to converge

I’m trying to replicate the model in Hansen2020. The linearized version of the model runs just fine, however, in the unlinearized version, the rank condition is not verified. The confusing thing now is, that I still get results and all my forward looking variables seem to converge to the steady state.

  1. Is there any case, where it makes sense, that the rank condition is not verified for the nonlinear model, when it is for the linear model?

  2. What does it mean, that the rank condition is not verified, when all my variables converge to the steady state? Does it mean, there are multiple solutions and Dynare just picked one?

Hansen2020_Copy.mod (2.4 KB)
Hansen2020_NotLinearized_Copy.mod (2.8 KB)
Hansen2020_NotLinearized_steadystate_helper.m (411 Bytes)

This typically is caused by a timing error. The two models should coincide in the BK conditions.
Yes, Dynare most likely picked on possible solution.

1 Like

I figured out, that the models don’t coincide, because the author seems to have log-linearized around a zero-inflation steady-state. I’m new to DSGE modeling and a bit confused by that practice. Is it ok to do that, even if the nonlinear model does not actually have a zero-inflation steady-state? I’m additionally confused by that, since the linear model contains steady-state values and it is unclear to me how these were derived given a zero-inflation steady-state, since the nonlinear model does not actually have a zero-inflation steady-state.

Are you sure the model does not have a zero inflation steady state? Usually, the steady state inflation rate can be selected to be zero.

I had to solve an equation numerically to receive the inflation in the steady-state model (the result is non-zero). The rest of the model than can than be solved analytically. When I try to force the steady-state inflation to zero, the steady-state file doesn’t compute the steady-state anymore and the Phillips-Curve has residuals (which makes sense to me, since the numerical equation has only 1 solution). Since, the non-zero inflation steady-state solves the model without residuals, I think it is unlikely, that I made a mistake in my steady-state derivations.

Which model are you talking about? Usually, there infinitely many steady state with respect to inflation and one can be selected. In most New Keynesian models, you cannot endogenously compute the steady state inflation rate.

Sorry, it might be, that I fundamentally misunderstand something here.
I took all the equations (before the log-linearization is done) from the paper I linked above, and I refer to them as the nonlinear model. So for example C_{rt}^{-1} = \beta R_t C_{rt+1}^{-1}\frac{1}{\Pi_{t+1}} for the Euler equation.

To calculate the steady-state, I replaced all endogenous variables, with their steady-state expression and removed the time subscript, so C_{rt} becomes \bar{C} for example. I refer to that as the steady-state model.

I now have 14 equations and 14 variables in my steady-state model. I substituted everything in the Phillips-Curve, until it only depended on inflation and since the equation became quite involved I used a numerical solver to solve for Pi. Given Pi, the rest of the equations in the steady-state model, could than be solved quite easily.

I than wrote a steady_state_model block (it’s in the Hansen2020_NotLinearized_Copy.mod from above), where I used a steady_state_helper function to solve the equation for Pi numerically and than put in the analytical solutions for all the other steady-state variables.

When I run this in Dynare it doesn’t complain about the steady-state and after running the resid command, it shows all residuals as zero. I therefore thought, that I made no mistake when calculating the solutions for the steady-state model. For any other value of Pi, except the solution of the numerical equation(I checked with mathematica and it only has 1 solution), Dynare tells me, that the steady-state file does not compute the steady-state.

In my understanding, this meant, that there is only a single solution for the steady-state of the model and it is not zero for the steady-state inflation. However, I later discovered, that when the author (from the paper above) did his log-linearizations, he used a zero-inflation steady-state and I wondered how this is possible, since the steady-state model has no solution for a steady-state inflation of zero.

The Fisher equation tells you that any combination of inflation rate and nominal interest rate consistent with the real rate determined by preferences is a steady state. For that reason, the author can pick \Pi=1 and then compute the rest of the steady state.

This makes sense to me, but in the model, the Monetary Policy is specified for the linearized model by a Taylor Rule of the form:

\hat{R_t} = \phi_\Pi \hat{\pi_t} + \phi_y \hat{Y_t}

In order to calculate the steady-state of the model (before the log-linearizations), I assumed the nonlinear monetary policy equation to be:

R_t = \Pi_t^{\phi_\pi} * Y_t^{\phi_y}

I thought this is correct, since log-linearizing this equation, would lead to the Taylor Rule above.

But from what I understand now, since the nominal rate is determined by this equation, I can’t freely choose an inflation rate, cause it will not be easily consistent with the real rate determined by preferences.
Is this usually not an issue, or is the monetary policy not specified like this for the nonlinear model?

No, a typical Taylor rule is
\frac{R_t}{R} = \left(\frac{\Pi_t}{\Pi}\right)^{\phi_\pi} \left(\frac{Y_t}{Y}\right)^{\phi_y}

You can verify that the steady states will drop out during linearization and that you can select combination of R and \Pi consistent with the Euler equation 1=\beta\frac{R}{\Pi}

1 Like

I see. I had already divided by the steady-state equation, when I did the backwards log-linearization.
Thank you very much, this was the issue.

Sry, but I have one last follow up to this. Everything seems to work, after i used the Taylor-Rule as you suggested it and there are no errors, however, model diagnostics now gives me the following:

“The Jacobian of the static model is singular there is 1 colinear relationships between the variables and the equations Colinear variables:

The presence of a singularity problem typically indicates that there is one redundant equation entered in the model block, while another non-redundant equation is missing. The problem often derives from Walras Law.”

Is this normal, because the Taylor-Rule became redundant in the static model, or does this indicate another problem? Maybe I should mention, that Walras Law was used to get rid of one Budget-Constraint in the model.

Without the file, it is impossible to tell.