discretionary_policy: Discretionary (Time-Consistent) Optimal Policy

View source: R/discretionary-policy.R

discretionary_policyR Documentation

Discretionary (Time-Consistent) Optimal Policy

Description

Solves for the welfare-maximising policy under discretion: the planner has no commitment power and at every period re-optimises subject to private-sector expectations of the policy from then on. Implements the Soederlind (1999) / Dennis (2007) value-iteration algorithm.

Usage

discretionary_policy(
  model,
  params = NULL,
  shock_sd = NULL,
  instruments,
  welfare_weights,
  beta = 0.99,
  tol = 1e-10,
  max_iter = 2000L
)

Arguments

model

A dsge_model or dsgenl_model object.

params

Named numeric vector of model parameters.

shock_sd

Named numeric vector of shock standard deviations.

instruments

Character vector. Names of the policy instrument variables (subset of the model's control variables).

welfare_weights

A named list specifying the welfare loss weights. Elements:

Q_xx

Square matrix (n_s x n_s) on state variables. If a named vector is provided a diagonal matrix is constructed.

Q_yy

Square matrix (n_c x n_c) on control variables. If a named vector is provided a diagonal matrix is constructed.

Q_xy

Cross-weight matrix (n_s x n_c). Default is zero.

At least one of Q_xx or Q_yy must be supplied.

beta

Numeric. Discount factor (0 < beta < 1). Default 0.99.

tol

Numeric. Convergence tolerance on ||P_{k+1} - P_k||. Default 1e-10.

max_iter

Integer. Maximum fixed-point iterations. Default 2000.

Details

The discretionary solution always satisfies the time-consistency constraint: the planner cannot make credible promises that condition on past states beyond what is in the current state vector. For linear-quadratic problems whose forward-looking elements have been absorbed into the reduced-form transition matrix H by solve_dsge(), the discretionary fixed point coincides with the commitment fix point (Ramsey). The two solutions differ when the policy has direct access to forward-looking auxiliary variables not yet integrated out. Use ramsey_policy() for the commitment problem; the two functions take identical arguments.

Value

An object of class c("dsge_discretionary","dsge_ramsey") with the same fields as ramsey_policy – in particular F (feedback rule), H_ram (closed-loop transition under the optimal rule), welfare_loss, P (value matrix), converged, n_iter.

References

Soederlind, P. (1999). Solution and estimation of RE macromodels with optimal policy. European Economic Review, 43(4-6), 813-823.

Dennis, R. (2007). Optimal policy in rational expectations models: New solution algorithms. Macroeconomic Dynamics, 11(1), 31-55.

See Also

ramsey_policy (commitment), osr (restricted simple rules), welfare_loss.


dsge documentation built on Sept. 25, 2026, 5:08 p.m.