-
Notifications
You must be signed in to change notification settings - Fork 21
Home
Michel Juillard edited this page May 22, 2024
·
14 revisions
This Wiki is for discussing design issues about DynareJulia
- Dynare.jl
- AxisArrayTables.jl
- ExtendedDates.jl
- FastLapackInterface.jl
- GeneralizedSylvesterSolver.jl
- KalmanFilterTools.jl
- KroneckerTools.jl
- LinearRationalExpectations.jl
- PolynomialMatrixEquations.jl
- QuasiUpperTriangular.jl
- Deals with Dynare instructions
- The preprocessor is the same executable as for Dynare
Matlab/Octave. In Julia, the Dynare preprocessor is made available via the artifact
DynarePreprocessor_jll
- We use BuildDynarePreprocessor_jll repository to test the recipe and keep track of issues.
- The state of computations is kept in
context
as structure ofContext
type
struct Context
symboltable::SymbolTable
models::Vector{Model}
modelfileinfo::ModFileInfo
results::Results
work::Work
end
- Instructions are extracted from
./<MODFILENAME>/model/json/modfile.json
that is written by the C++ preprocessor
- Solves model of the form
latex E_t \{ A y_{t+1} + B y_t + C y_{t-1} + D u_t + e\} = 0
- The deterministic steady state of the model is defined as
latex \bar y = -(I - A - B - C)^{-1}e
- The solution takes the form
latex y_t - \bar y= G_y (y_{t-1} - \bar y) + G_u u_t
-
G_y
is the solution of the polynomial matrix equationlatex A G_y G_y + B G_y + C = 0
andlatex G_u = -(A G_y + B)^{-1}Du_t
Two different algorithms are provided:
- generalized Schur decomposition (\cite{klein_using_2000, sims_solving_2002, soderlind_solution_1999}(
- cyclic reduction (\cite{bini_numerical_2012})
- the package provides functions to reduce the problem size by eliminating static variables.
- Multiplication and linear system solution for upper quasi triangular matrices
- Useful for handling real generalized Schur decomposition
- Kalman filter
- Monitored Kalman filter
- Fast Kalman filter (\cite{herbst_using_2012})
- Kalman smoother
- Diffuse filter/smoother (\cite{durbin_time_2012})
- Univariate filter/smoother
- A data frame where the first column represents dates
- Extension of dates in Julia to Year, Semester, Quarter, Month, Week, Day and Undated
- Each frequency is represented by an integer starting at some epoch (January 1st of year 1970)
- See also TimeDataFrames
- Pre-allocate workspace for some Lapack function
- LU decomposition and solution of linear systems
- QR decomposition
- Schur decomposition
- Chains of Kronecker products
\begin{align*}
c &= (Ip \otimes A \otimes Iq)*b\\
c &= (Ip \otimes AT \otimes Iq)*b\\
c &= (A \otimes A \otimes ... \otimes A)*b\\
d &= (AT \otimes AT \otimes ... \otimes AT \otimes B)*c\\
C &= A * (B \otimes B \otimes .... \otimes B)\\
D &= A * B * (C \otimes C \otimes .... \otimes C)\\
D &= AT * B * (C \otimes C \otimes .... \otimes C)\\
E &= AB(C \otimes D \otimes ... \otimes D)
\end{align*}
- Implements algorithms in \cite{kamenik_solving_2005}
solves
a x + b x (c \otimes c \otimes ... \otimes c) = d
by using
(I + c^T \otimes c^T \otimes ... \otimes c^T \otimes b)x = d
calib_smoother
check
deterministic_trends
histval
initval
-
perfect_foresight_setup
(only some options) -
perfect_foresight_solver
(only some options) planner_objective
ramsey_model
shocks
steady
-
stoch_simul
(only order=1, no moments)
- Estimation of linear(-ized) models
- Address \emph{time to first result} problem
- Mixed complementarity problems
- Forecasting
- Making existing packages production grade (tests, documentation, benchmarking)
- Dynare-Julia documentation
-
$k$ -order approximation - Multiple models
- Linear models with occasionally binding constraints
- Nonlinear estimation - particle filters
- Nonlinear estimation - simulated methods of moments
- Markov-Switching DSGE models
- Global sensitivity analysis
- Global methods of approximation
- Limited rationality
- Heterogeneous agent models