Ramsey Policy - inconsistent IRFs

Dear Dynare Users,

I have a New Keynesian Open Economy Model with two countries of the same size and distortionary taxation where I try to find the optimal Ramsey_policy after a demand shock.

In the model government issues debt and finances it with an income-tax.

I use lump-sum taxation each period to offset steady-state distortions, so, in the model, the steady-state is optimal and equal to the Social-Planner’s problem Steady state. This lets me define the value of government debt and tax-level. I chose 0 government debt (but i could have chosen other value and still satify the optimal SS. equations form the social planner).

To run ramsey_model I define a steady_state conditional on the instruments which are:

  • home and foreign nominal interest rates (R; R*)
  • home and foreign income-tax level (\tau, \tau^*)

I therefore use two .m functions to calculate numerically some endogenous variables of steady state (some kind of trick not to use matrices in the calculation)

The thing is that ramsey_policy returns the optimal steady state that I analitically found (which has 0 government debt in S.S.) but the IRFs are such that debt andincome-tax levels deviate permanently from the steady state

More… the deviation varies in direction and magnitude depending on the shock. (in the model I have government spending shocks for both countries and demand shocks for both countries).

But this is strange, because ramsey_policy is in first place accepting the 0 debt steady_state… My question is:

Is there something worng with the steady_state or the IRFs??

If there was a problem with the zero debt steady-state that I indicated with the “initval” values passed to ramsey_policy then why would the deviation vary with the type and magnitude of the shock?

I attached the .mod file and the two .m functions called to calculate the conditional steady state. Could someone help me??

I really appreciate all the help! Than you in advance!

PS:home utility function is:

C^(1-\sigma_c)*(Epsi_c)^(\sigma_c)/(1-sigma_c)+G^(1-\sigma_c)/(1-\sigma_c)-N^(1+\sigma_n)/(1+\sigma_n)

find_n1.m (478 Bytes) find_n2.m (479 Bytes) Open_Nk_nl_tau_Ramsey.mod (8.7 KB)

From what you describe, your model does not have a unique steady state for debt, but rather infinitely many from which you selected a particular one. But given that any debt level is consistent with a steady state why should you expect to return to that particular initial steady state once a shock happens?

Hi Professor, thanks for the reply!

I thought it would come back to the zero debt steady state because after I set the “initval block” (that indicates the zero debt S.S. to dynare) and set the conditional values in the “steady block” when I run:
ramsey_model();
steady;

the response is indeed the 0 debt steady state. So (I think) it is like the ramsey command accepted the 0 debt steady state as the optimal one. This would imply that after a shock, the optimal policy would return to this state,

The IRFs do not return to the 0 debt S.S., so what seems to me is that ramsey_policy accepts the 0 debt steady state to compute the approximation of the model, uses these values as the initial values at period 0 and then return to a S.S. that is indeed the “optimal one” after a particular shock. Is that correct?

Isn’t that strange? Shouldn’t dynare first find, report in “steady;” and approximate the model around this last steady state to which the model converges? But for a model with many shocks it would be impossible for the routine because it would ask dynare to compute as many approximations as shocks (and the IRFs would be deviations from different steady states for different shocks)…

I ran the model with only one shock and the deviations to a “new steady state” also happen… what do you think, Professor? Thanks for the help!!

You can verify that your solved model features a unit root. Because of that the model will not converge back to your initial steady state. It settles on a new steady state.

Hi Professor,

I see… I never dealt with that kind of problem. How can I handle this? I mean, see which variable has the unit root and work on the equations to try to solve it… thanks for the help!

For example, attached is the same model but with rules for home and foreign nominal interest rates, and for home and foreign income-tax.

model_diagnostics says there is a colinear relationship between 4 equations: the exogenous government spending equations and the endogenous tax-level equations.

(Just as information)
Home government debt (variable D) is defined implicitly as:

(Nominal debt)*(Nominal interest rate) / (Home Price)

and analogous for the foreign debt. That’s why my government budget constraint equation is:

D=R*(S^(nu/2-1))((D(-1)(S(-1)^(1-nu/2))/Pi_H)+G-TauWN);
Open_Nk_nl_tau_test.mod (11.6 KB)

You need to understand the economics here. If you take the SGU 2004 model, they need to select a particular steady state for debt, because the model features a unit root. You seem to have something similar here.

Hi Professor!

After reading some papers I found that the IRFs are right in the sense that the literature finds that optimal responses of debt and tax indeed converge to another point. For open economy the example is Benigno & De Paoli (2006) - Optimal Fiscal and Monetary Policy for a Small Open Economy.

Now the question that I have, looking at my code, is that the moments of the endogenous variables are not being calculated, except for the instruments, i.e. oo_mean has NaN for all variables except the instruments of ramsey_policy().

Do you have any clue why is that, or how to fix it? The code is attached below if you need.

Thanks for all the help! Best,

Raffael
Open_Nk_nl_tau_Ramsey.rar (3.1 KB)