Optimal Policy
Dynare can compute Ramsey policy and optimal simple rules
Ramsey policy
computes the first order approximation of the policy that maximizes the policy maker objective function submitted to the constraints provided by the equilibrium path of the economy.
Ramsey policy replaces OLR in Dynare version 3:
Example:
var y inflation 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(linear); y = delta * y(-1) + (1-delta) * y(+1) + sigma *(r - inflation(+1)) + y_; inflation = alpha * inflation(-1) + (1-alpha) * inflation(+1) + kappa*y + inf_; end; shocks; var y_; stderr 0.63; var inf_; stderr 0.4; end; planner_objective inflation^2 + lambda1*y^2 + lambda2*r^2; ramsey_policy(planner_discount=0.95);
Notes:
- There must be less equations than endogenous variables. The difference is the number of instrument to be chosen optimally.
For this reason, you can't use steady or check before ramsey_policy
- Pure Ramsey policy or optimal policy in a timeless perspective depends on the initial values of the Lagrange multipliers, but the recursive equations are the same.
ramsey_policy isn't limited to linear models or quadratic objective functions.
The default value of planner_discount is one.
ramsey_policy is limited to the first order approximation.
Optimal simple rule
With optimal simple rule (OSR), Dynare searches numerically the best value for the coefficients of some prespecifed policy rule.
Example:
var y inflation r; varexo y_ inf_; parameters delta sigma alpha kappa gammarr gammax0 gammac0 gamma_y_ gamma_inf_; delta = 0.44; kappa = 0.18; alpha = 0.48; sigma = -0.06; model(linear); y = delta * y(-1) + (1-delta)*y(+1)+sigma *(r - inflation(+1)) + y_; inflation = alpha * inflation(-1) + (1-alpha) * inflation(+1) + kappa*y + inf_; r = gammax0*y(-1)+gammac0*inflation(-1)+gamma_y_*y_+gamma_inf_*inf_; end; shocks; var y_; stderr 0.63; var inf_; stderr 0.4; end; optim_weights; inflation 1; y 1; end; osr_params gammax0 gammac0 gamma_y_ gamma_inf_; gammarr = 0; gammax0 = 0.2; gammac0 = 1.5; gamma_y_ = 8; gamma_inf_ = 3; osr;
Notes:
- There must be as many equations as endogenous variables
- Currently, the only objective function is a weighted sum of the variances of some variables of the model
- The fragment
gammarr = 0; gammax0 = 0.2; gammac0 = 1.5; gamma_y_ = 8; gamma_inf_ = 3;
- provides numerical initialization for the optimization.
- On the forum, otb reports that he/she encountered numerical problems with models that have very small variances. He/she suggests to multiply the weights in the objective function by 100 or 1000
Warning
Don't call your files osr.mod or osr1.mod because it conflicts with internal Dynare names.