2.8.2. First-order perturbation
The state vector
where \(\sigma\) is the perturbation parameter.
In some applications, we can assume agents have information on shocks \(k\geq 0\) periods ahead into the future. In that case, the state variables under anticipated shocks (see e.g. [Maih, 2010] and [Juillard and Maih, 2010]) is
Solvers for the quadratic matrix polynomial
The constant-parameter case (and the Maih-Waggoner perturbation)
The algorithms implemented in RISE for solving linear rational expectations models are
rise_1 : A Klein-like algorithm (Default).
sims : This is the Gensys algorithm by [Sims, 2002]
Klein : An algorithm by [Klein, 2000]
AIM : See e.g. [Anderson, 2008]
cyclic_reduction : the cyclic reduction algorithm
Note
If there is a unique and stable solution in the Maih-Waggoner perturbation, these algorithms will also work in the regime-switching case.
The regime-switching case
The algorithms implemented in RISE for solving regime-switching linear rational expectations models are
mnk : Newton algorithm by [Maih, 2015], which explicitly forms and store kronecker products.
mn : Newton algorithm by [Maih, 2015], which avoids the creation of kronecker products and is thereby more efficient for solving large systems.
fwz : Newton algorithm by [Farmer et al., 2011]
dsge_udc : Undetermined coefficients method by [Maih and Waggoner, 2018]. This algorithm can only be applied with the Maih-Waggoner perturbation.
dsge_schur : Schur-based method by [Maih and Waggoner, 2018]. This algorithm returns the most stable solution. Therefore it gives the same answer as rise_1 (and other constant-parameter solvers) when there is a unique stable solution. This algorithm can only be applied with the Maih-Waggoner perturbation.
dsge_groebner : Groebner-basis based solver from Computational algebraic geometry by [Maih and Waggoner, 2018]. When it works, this algorithm finds all possible solutions to the problem.
mfi : Functional iteration algorithm by [Maih, 2015]
Note
All these algorithms for solving regime-switching linear rational expectations can solve constant-parameter models even when there is no unique and stable solution.
User-defined solver
A user-defined solver should be a function with inputs and outputs as follows
[Tz_pb,Tsig,Te,retcode]=user_solver(Gplus01,A0,Aminus,B,Q,stst_,vargs{:});
where the inputs are :
Gplus01 is an \(nd\times nd\times h\times h\) array of coefficient matrices on forward-looking terms multiplied by the transition probabilities
A0 is an \(nd\times nd\times h\) array of coefficient matrices on contemporaneous terms
Aminus is an \(nd\times nd\times h\) array of coefficient matrices on backward-looking terms
B is an \(nd\times nx\times h\) array of coefficient matrices on shock terms
Q is an \(h\times h\) transition matrix with Qij the probability of going from i to j
stst_ is an \(nd\times h\) matrix whose columns represent the steady state in each regime
vargs represents potential additional arguments entering the user-defined function.
And the outputs are:
Tz_pb is an \(nd\times nd\times h\) array of the impact of autoregressive terms
Tsig is an \(nd\times nd\) matrix whose columns represent the impact of the perturbation parameter in each regime
Te is an \(nd\times nx\times h\) array representing the impact of shock terms
retcode is a flag which takes on value 0 if there is no problem or a number different from 0 if there is a problem finding the solution.