Alternative Policies

Alternative Policies

Procedure

This section describes forecasting under an alternative monetary policy rule. That is:

  1. Filtering and smoothing is done under the historical monetary policy rule, i.e. the one defined in the eqcond method for the given model.
  2. Before forecasting, the state space matrices are recomputed under the alternative policy rule.
  3. Forecasts and IRFs are computed under the alternative rule.

Note that shock decompositions (and the two associated products, trends and deterministic trends) cannot currently be computed under an alternative policy.

The user defines some instance of the AltPolicy type (described below) and sets it as the value for the :alternative_policy Setting. Then the function calls made to forecast and compute means and bands remain the same as usual (see Forecasting and Computing Means and Bands).

For example, suppose you have defined the functions taylor93_eqcond and taylor93_solve corresponding to Taylor (1993)'s proposed monetary policy rule. Then you can run:

m = AnSchorfheide()
m <= Setting(:alternative_policy, AltPolicy(:taylor93, taylor93_eqcond, taylor93_solve))
forecast_one(m, :mode, :none, [:forecastobs, :forecastpseudo])
compute_meansbands(m, :mode, :none, [:forecastobs, :forecastpseudo])

The AltPolicy Type

DSGE.AltPolicyType.
mutable struct AltPolicy

Type defining an alternative policy rule.

Fields

  • key::Symbol: alternative policy identifier

  • eqcond::Function: a version of DSGE.eqcond which computes the equilibrium condition matrices under the alternative policy. Like DSGE.eqcond, it should take in one argument of mutable struct AbstractModel and return the Γ0, Γ1, C, Ψ, and Π matrices.

  • solve::Function: a version of DSGE.solve which solves the model under the alternative policy. Like DSGE.solve, it should take in one argument of mutable struct AbstractModel and return the TTT, RRR, and CCC matrices.

  • forecast_init::Function: a function that initializes forecasts under the alternative policy rule. Specifically, it accepts a model, an nshocks x n_forecast_periods matrix of shocks to be applied in the forecast, and a vector of initial states for the forecast. It must return a new matrix of shocks and a new initial state vector. If no adjustments to shocks or initial state vectors are necessary under the policy rule, this field may be omitted.

  • color::Colorant: color to plot this alternative policy in. Defaults to blue.

  • linestyle::Symbol: line style for forecast plots under this alternative policy. See options from Plots.jl. Defaults to :solid.

source