Ramsey Policy

I resolved the 0/0 eigenvalue problem, but Blanchard Kahn conditions fail to hold using the ramsey_policy function. I tried various timings of the variables, but nothing changes the outcome. If it is to do with the warning:

then how do I specify PI other than in the initval block? I also tried to initialise it in the steady_state_model block, but although the warning disappears, the BK conditions still don’t hold (there is no stable equilibrium).

I doubt that this is an economic issue given that the file runs very smoothly with other MP rules (and as an example I included a simple Taylor rule in the .mod file below). The error also looks very similar to the ones observed in the 4.4.3 version of dynare even though I am using the unstable version:

[quote]Using 64-bit preprocessor
Starting Dynare (version 2016-04-24).
Starting preprocessing of the model file …
Ramsey Problem: added 34 Multipliers.
Substitution of endo leads >= 2: added 1 auxiliary variables and equations.
Substitution of endo lags >= 2: added 1 auxiliary variables and equations.
Found 34 equation(s).
Found 71 FOC equation(s) for Ramsey Problem.
Evaluating expressions…done
Computing static model derivatives:

  • order 1
    Computing dynamic model derivatives:
  • order 1
  • order 2
    Computing static model derivatives:
  • order 1
  • order 2
  • order 3
    Processing outputs …
    done
    Preprocessing completed.

Warning: Rank deficient, rank = 33, tol = 2.256579e-10.

In dyn_ramsey_static_dyn_ramsey_static_1 (line 152)
In dyn_ramsey_static>@(x)dyn_ramsey_static_1(x,M,options_,oo) (line 43)
In csolve (line 60)
In dyn_ramsey_static (line 58)
In evaluate_steady_state (line 120)
In resol (line 104)
In stoch_simul (line 83)
In ramsey_policy (line 25)
In fm_ramsey (line 578)
In dynare (line 223)
Warning: Rank deficient, rank = 33, tol = 2.256579e-10.
In dyn_ramsey_static_dyn_ramsey_static_1 (line 152)
In dyn_ramsey_static>@(x)dyn_ramsey_static_1(x,M,options_,oo) (line 43)
In csolve (line 80)
In dyn_ramsey_static (line 58)
In evaluate_steady_state (line 120)
In resol (line 104)
In stoch_simul (line 83)
In ramsey_policy (line 25)
In fm_ramsey (line 578)
In dynare (line 223)
Warning: Rank deficient, rank = 33, tol = 2.256579e-10.
In dyn_ramsey_static_dyn_ramsey_static_1 (line 152)
In dyn_ramsey_static>@(x)dyn_ramsey_static_1(x,M,options_,oo) (line 43)
In csolve (line 112)
In dyn_ramsey_static (line 58)
In evaluate_steady_state (line 120)
In resol (line 104)
In stoch_simul (line 83)
In ramsey_policy (line 25)
In fm_ramsey (line 578)
In dynare (line 223)
Warning: Rank deficient, rank = 33, tol = 2.256579e-10.
In dyn_ramsey_static_dyn_ramsey_static_1 (line 152)
In dyn_ramsey_static>@(x)dyn_ramsey_static_1(x,M,options_,oo) (line 43)
In csolve (line 112)
In dyn_ramsey_static (line 58)
In evaluate_steady_state (line 120)
In resol (line 104)
In stoch_simul (line 83)
In ramsey_policy (line 25)
In fm_ramsey (line 578)
In dynare (line 223)
Warning: Rank deficient, rank = 33, tol = 2.256579e-10.
In dyn_ramsey_static_dyn_ramsey_static_1 (line 152)
In dyn_ramsey_static>@(x)dyn_ramsey_static_1(x,M,options_,oo) (line 43)
In dyn_ramsey_static (line 70)
In evaluate_steady_state (line 120)
In resol (line 104)
In stoch_simul (line 83)
In ramsey_policy (line 25)
In fm_ramsey (line 578)
In dynare (line 223)
Error using print_info (line 42)
Blanchard Kahn conditions are not satisfied: no stable equilibrium
Error in stoch_simul (line 94)
print_info(info, options_.noprint, options_);
Error in ramsey_policy (line 25)
info = stoch_simul(var_list);
Error in fm_ramsey (line 578)
ramsey_policy(var_list_);
Error in dynare (line 223)
evalin(‘base’,fname) ; [/quote]

Is there anything that could possibly be wrong with my .mod file? Thanks
gm_ramsey.mod (18.6 KB)

Sorry for the late response. I had to check back with Michel Juillard.

  1. You must not include the welfare definition in the model when using Ramsey as this will create a singularity. The reason is that the planner objective will use that equation as well.
  2. It seems the “optimal value” for inflation is not feasible in your model. It seems to be 1.06, but already values for PI like 1.05 result in a complex steady state. This prevents Dynare from getting to a proper maximum. An additional complication is that the standard tolerance for solving the Ramsey problem of about 1e-6 is too coarse for your problem, implying that the solver does not move away from feasible starting values. When you try PI=0.8 in initval after getting rid of welfare in your model block, you will get a solution very close to 0.8.
1 Like

Thank you ever so much for your response.

I’ll have another look into the derivations, maybe I can fiddle around with how the model is specified to come up with something more fruitful.

One more question though. If I find a specification of the model that works for PI>=1.06, how do I change the standard tolerance level? I assume that this is why the solution for the Ramsey steady state of PI corresponds almost perfectly to the initval?

Thanks again, this has been a really helpful discussion.

We are working on it, see github.com/DynareTeam/dynare/pull/1262