Hi!

I use the command ramsey_policy to find the optimal level of the policy instrument. The level that I get is very random . It is very sensitive to its initial level. In addition, the level that I get does not correspond to the maximal level of welfare at the steady state. I have to put options_.solve_tolf = 1e-2 in order to get the optimal level. However, the level of welfare associated is not equal to the level that I find when I don’t use the command ramsey_model for the same level of the instrument.

I use a NK model with pollution. The policy instrument is the carbon tax (tau_e). The welfare at the steady state is given by `Welfare = (C^(1-zeta)/(1-zeta)- eta*L^(1+sigma)/(1+sigma))/(1-beta)`

.

Could you please help me to figure out how to solve this issue?

no_policy_variables.mat (369 Bytes)

Ramsey.mod (7.6 KB)

solve_Z.m (1.0 KB)

Can you elaborate on where exactly you encounter issues? If I crank up the steady state tolerance I seem to get a consistent level of the instrument.

solve_Z.m (1.0 KB)

Ramsey.mod (7.8 KB)

no_policy_variables.mat (369 Bytes)

When I run the code with `options_.solve_tolf = 1e-8`

, I obtain the following value for my instrument: tau_e = 0.00178356, which is associated with a welfare level of -731.745.

However, when I set `options_.solve_tolf = 1e-2`

, the value of the instrument changes significantly to tau_e = 0.105582, with an associated welfare level of -729.80. In both cases, the initial value is the same, set at 0.42. If I change this initial value, for instance to 0.3, the resulting instrument value becomes tau_e = 0.0673492. This indicates that the outcome is highly sensitive to the initial value of the instrument.

On the other hand, when `options_.solve_tolf = 1e-8`

, the result appears to be independent of the initial value of the instrument. However, this outcome is not optimal, as the resulting tau_e value is very low, and I can improve welfare at the steady state by increasing tau_e.

The steady state will of course be sensitive to the initial value if the solver has a low tolerance. As soon as you come close enough, it will stop, regardless of whether it could still come closer to the actual steady state.

Can you elaborate on:

How did you compare the welfare values? And how large is the difference?

I used a loop over tau_e and then plot the welfare as a function of tau_e. The level that maximises the welfare is more than 10% while it’s 0.1% when I use the command ramsey_model.

But how did you close the model then? Treat `tau_e`

as a fixed constant?

Yes. I treated tau_e as a constant and I changed its level. Then I calculate the level of the welfare for associated to each level of tau_e.