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
PoolModelType - DSGE-VARs and the
DSGEVARType - DSGE-VECMs and the
DSGEVECMType - Auxiliary Methods for DSGE-VARs and DSGE-VECMs
- Model Implementation Details
- The
AbstractDSGEModelType - Defining Indices
- Type Interfaces
- The
PoolModelType - The
DSGEVARType - The
DSGEVECMType - 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
gensysroutine - Regime-Switching
- The
SystemType - The
RegimeSwitchingSystemType - The
TimeVaryingInformationSetSystemType - 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
MeansBandstype - 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.