Ramsey policy again

The example on dynare.org/DynareWiki/OptimalPolicy seems to work. However, it is not obvious from what the policymaker’s discount factor is. It is not defined and the welfare seems to be defined as one-period welfare.

Can anyone clarify:

(a) is welfare on-period in that example? If not, what is the policymaker’s discount factor there? How to change it if needed?

(b) If yes, can we do the “standard” discounted welfare? What is the syntax?

Also, the note there says that “Ramsey” should work with non-quadratic (flow) utilities like log©. Is this true? Has anyone tried? Is there any example available? The example is linear, can it work with non-linear model? Again, does anyone know an example?

Many thanks

Hi,

Let me consider the following example. Suppose that the social planner maximizes the intertemporal utility of the representative houshold:

\sum_{\tau=0}^{\infty} \beta^ {\tau} u(c_{t+\tau},l_{t+\tau})

where u(,) is the felicity function. This objective can be written recursively as follows:

W_t = u(c_t,l_t) + \beta W_{t+1}

where W_t, the welfare, is the intertemporal utility at time t. In the mod file you declare the planner objective as follows:

planner_objective  u(c,l)

(obviously you have to replace the function u by whatever you want). Dynare then understands that the social planner has to maximize the welfare W. So, even if the declared function (after the planner_objective keyword) is static, the objective considered here is intertemporal (Dynare computes the discounted sum of instantaneous utilities for you). Note that, with the current version of Dynare, it is not possible to declare recursive utility functions (Kreps-Porteus).

The social planner can be less or more patient than the representative household, so the discount factor of the social planner is not necessarly equal to the discount factor of the representative household (\beta). You can set the social planner discount planner using an option in the command that triggers the simulation of the model. For instance:

ramsey_policy (order=1,planner_discount=0.95) ;

Yes you can declare a general non linear (non quadratic) objective function and consider a non linear(ized) model of the economy. You are not bounded to the case of a linear model with quadratic objective.

Best Regards,
Stéphane.

How about the optimal simple rule?
Does it only work for linear quadratic enviroment?
The example is such a case.

Can they be variables or functions of parameter? For example, if the social planner is a benevolent one, she wants to maximize the utility function. If we used second order Taylor expansion around the steady state, the weights becomes functions of steady state values, rather than some abitrary constants.

Dear Stephane

Many thanks for this. Unfortunately, I could not make it work. The error message is:

??? Error using ==> print_info
MJDGGES returns the following error code8

Error in ==> stoch_simul at 44
print_info(info);

Error in ==> ramsey_policy at 25
info = stoch_simul(var_list);

Error in ==> ramseytest at 100
ramsey_policy(var_list_);

Error in ==> dynare at 102
evalin(‘base’,fname) ;

This was obtained after I attempted to run this (which is the file from dynare.org/DynareWiki/OptimalPolicy with 3 modifications: “linear” removed from the model, objective has changed, and line with discount is added). BTW how does this know which variable is an instrument?

var y inf r;
varexo y_ inf_;

parameters delta sigma alpha kappa gammarr gammax0 gammac0 rbar lambda1 lambda2;

delta = 0.44;
kappa = 0.18;
alpha = 0.48;
sigma = -0.06;
lambda1 = 0.5;
lambda2 = 0.1;

model;
y = delta * y(-1) + (1-delta) * y(+1) + sigma (r - inf(+1)) + y_;
inf = alpha * inf(-1) + (1-alpha) * inf(+1) + kappa
y + inf_;
end;

shocks;
var y_;
stderr 0.63;
var inf_;
stderr 0.4;
end;

//planner_objective inf^2 + lambda1y^2 + lambda2r^2;

planner_objective y^(1+sigma)/(1+sigma);

ramsey_policy (order=1,planner_discount=0.99) ;

Hi, Tanya:

The problem you run into is model specific. I wrote my own model and set an obj. func similar to yours, but it works.

The error message tells the solve has difficulty to solve the 8th eigenvalue of the system.

Thanks - this was just an arbitrary example. I wanted to check details before using dynare for larger model (and more sensible). Perhaps this is why… Many thanks for your time.
Tanya