DSGE.jl
The DSGE.jl package implements the New York Fed DSGE model and provides general code to estimate many user-specified DSGE models. The package is introduced in the Liberty Street Economics blog post The FRBNY DSGE Model Meets Julia.
This Julia-language implementation mirrors the MATLAB code included in the Liberty Street Economics blog post The FRBNY DSGE Model Forecast.
The New York Fed DSGE team is currently working on adding methods to solve nonlinear and heterogeneous agent DSGE models. Extensions of the DSGE model code may be released in the future at the discretion of the New York Fed.
Table of Contents
- Learning How to Use DSGE.jl
- Model Design
- Special Model Types
- The
PoolModel
Type - DSGE-VARs and the
DSGEVAR
Type - DSGE-VECMs and the
DSGEVECM
Type - Auxiliary Methods for DSGE-VARs and DSGE-VECMs
- Model Implementation Details
- The
AbstractDSGEModel
Type - Defining Indices
- Type Interfaces
- The
PoolModel
Type - The
DSGEVAR
Type - The
DSGEVECM
Type - Running an Existing Model
- Input Data
- Setup
- Loading data
- Non-FRED data sources
- Incorporate population forecasts
- Dataset creation implementation details
- Conditional data
- Common pitfalls
- Update sample input data
- Data Transforms and Utilities
- New York Fed DSGE Model 990 Data
- Solving the Model
- The
gensys
routine - Regime-Switching
- The
System
Type - The
RegimeSwitchingSystem
Type - The
TimeVaryingInformationSetSystem
Type - Estimation
- Forecasting
- Procedure
- Forecast Outputs
- Preparing Forecast Inputs
- Computing Forecast Outputs
- Saving Forecast Outputs
- Forecasting Functions
- Impulse Responses
- DSGE Impulse Responses
- VAR Impulse Responses
- DSGE-VAR Impulse Responses
- VECM Impulse Responses
- DSGE-VECM Impulse Responses
- Wrappers for Impulse Response Functions
- Docstrings
- Computing Means and Bands
- Procedure
- Weighted Averages of Full-Distribution Forecasts
- Functions for Calculating Means and Bands
- The
MeansBands
type - Alternative Policies
- Procedure for Permanent Alternative Policies
- Procedure for Temporary Alternative Policies
- Alternative Policy Uncertainty and Imperfect Awareness
MultiPeriodAltPolicy
- Types
- Alternative Scenarios
- Forecast Decomposition
- Plotting
- Standard Algorithms
- Solving the Model
- Optimization
- Hessian Approximation
- Sampling
- State Space Filters and Smoothers
- Sequential Monte Carlo
- Advanced Usage
- Package Directory Structure
- Working with Settings
- Accelerating Computation of Regime-Switching System
- Regime-Switching Forecasts
- Alternative Policy Uncertainty and Imperfect Awareness
- Automatically Generating Anticipated Shocks
- Automatic Endogenous ZLB Enforcement as Temporary Rule
- Editing or Extending a Model
- Additional Tips
- Contributing to DSGE.jl
- The DSGE MATLAB to Julia Transition: Improvements and Challenges
- Macroeconomic Forecasting with DSGEs Using Julia and Parallel Computing
- Performance Improvements
- Design Principles
- Parallel Computing
- StateSpaceRoutines.jl
- Disclaimer
- References
- License
Acknowledgments
Developers of this package at the New York Fed include
- Michael Cai
- William Chen
- Shlok Goyal
- Abhi Gupta
- Alissa Johnson
- Pearl Li
- Ethan Matlin
- Erica Moszkowski
- Reca Sarfati
- Micah Smith
Contributors to this package at QuantEcon include
The gensys
and csminwel
routines DSGE.gensys
and DSGE.csminwel
are based on routines originally copyright Chris Sims. The files are released here with permission of Chris Sims under the BSD-3 License.
The kalman_filter
routine is loosely based on a version of the Kalman filter algorithm originally copyright Federal Reserve Bank of Atlanta and written by Iskander Karibzhanov. The files are released here with permission of the Federal Reserve Bank of Atlanta under the BSD-3 License.