- Fix error in calculating the diagonal of the Hessian with parallel workers
- Update tests to handle seed changes in Julia 1.5
- Convert missing values to NaNs when calculating means and bands
- Raise Julia compatibility to all v1.x.
- Increase version restrictions for most packages to most recent ones (e.g. Plots)
- Implement (exogenously) regime-switching DSGE models (but estimations are not tested)
- Implement (exogenously) regime-switching forecasts during the history and forecast horizon
- New subspecs of
Model1002
to model the impact of the COVID-19 pandemic - Interface for the automated addition of anticipated shocks to DSGE models for shocks other than monetary policy shocks.
- Interface for calculating weighted averages of different full-distribution forecasts
- Add Nominal GDP targeting and average inflation targeting as alternative policies
- Automatic enforcement of ZLB as a temporary alternative policy
- Filepathing for Windows OS should work properly now (although we still do not test on Windows OS)
- Implement DSGE-VECMs and provide functionality to compute impulse responses.
- Extend DSGE-VAR rotation impulse responses to compute in deviations from baseline.
- Example for running impulse responses of a a DSGE-VECM.
- Extend example for DSGE-VARs to allow plotting of modal impulse responses.
- Fix summary statistics when loading data
- Fix bugs in the documentation.
- Implement DSGE-VARs and provide functionality to estimate them and compute impulse responses.
- Example for running a forecast decomposition.
- Example for running a DSGE-VAR.
- Allow user to avoid running csminwel when using SMC and calling estimate.
- Support for bridging from another estimation (in SMC.jl)--this update ensures compatibility
- Automatically run csminwel after an SMC estimation to ensure you've found the mode with kwarg run_csminwel in smc2
- Bug fixes and improvements
- Add models m904 (SWFF) and m805 (SWpi)
- Functionality to specify heterogeneous agent models, in addition to representative agent models.
- Methods for the solution of heterogeneous agent continuous time models
- Example model implementations
- Sorted out compatibility issues with
StateSpaceRoutines.jl
. Dropped compatibility withv0.7
.
- Package officially compatible with
v0.7
,v1.0
,v1.1
- Enable parameter blocking in Metropolis-Hastings algorithm
- Functionality to simulate data from a model
- Expanded test suite and example files
Bug fixes and cleanup
- Breaks out SMC and Model Constructor objects into SMC.jl and ModelConstructors.jl
- MH can just take vector of Parameters, likelihood function, and data (like SMC but still exists only in DSGE.jl package)
- DSGE.jl depends on SMC.jl and ModelConstructors.jl but for users who only need SMC or Model Constructor utilities, don't need to load DSGE.jl package anymore
- Adds the ability to easily create packets of results from estimating and forecasting a DSGE model. An example script is provided in docs/examples/make_packet.jl.
Bug fixes and cleanup
- Adds Sequential Monte Carlo (SMC) as an alternative to Metropolis Hastings for estimating models. Latest release with all bug fixes and speed improvements
- Forecast decompositions user to compare two forecasts and break down why forecasts have changed (by shock, differences in parameters, differences in data, etc.)
- Specify size of desired impulse responses (on impact) and flip shocks
filter_shocks
method allows user to obtain only filtered-only shocks (as opposed to filtered and smoothed shocks)- Compatibility with SMC (full version to be released soon)
- New functions to deal with Date objects
- Compatibility with likelihood-only Kalman Filter and Chandrsekhar recursions (see StateSpaceRoutines.jl) which offer large speedups
- Fixes to scenarios code, inluding rectifying date labels
- Patch release to fix failing test
- Upgraded all code for use with Julia v0.7.0.
- Changed file-saving dependency from JLD to JLD2.
- Updated data loading and other machinery to rely on the Missing type for missing data as opposed to NaN.
- Implement benchmarking suite to benchmark code performance.
- Make DSGE compatible with improvements to the Kalman filter.
- Clean up unit tests.
- Clean up travis file.
- Fix dependency issues with NLOpt and Optim.
-
Addressed deprecations and warnings for:
- Non-vectorized functions (e.g.
log
,!
) vcat
on DataFrames with different column names- Optimization-related functions for new releases of Optim.jl
- Array declaration
- Non-vectorized functions (e.g.
-
Tidied:
- Plotting code
- Meansbands computation
- Various models
- Scenarios code
- Tests
- Added
nelder_mead
optimizer - Added forecasting under alternative policies (
AltPolicy
) and alternative scenarios (AbstractScenario
) - Added plotting functions:
plot_parameters
,plot_history_and_forecast
,plot_forecast_comparison
,hair_plot
,plot_shock_decomposition
,plot_impulse_response
,plot_altpolicies
, andplot_scenario
- Upgraded all code for use with Julia v0.6.0 or higher
- Changed input data file names: see
get_data_filename
- Added dataset identifier
Setting
with keydata_id
- Changed
cond_id
fromSetting{String}
toSetting{Int}
- Moved raw input data files from
inpath(m, "data")
toinpath(m, "raw")
- Added dataset identifier
- Added
:marginal_L
(marginal likelihood) field toKalman
type - Removed
MM
andVVall
fields fromMeasurement
type - Pluralized forecast output classes
:states
,:shocks
, and:stdshocks
- Stopped adding back population growth when reverse transforming shock decompositions and deterministic trends
- Stopped adding trends to and detrending shock decompositions and deterministic trends
- Changed pseudo-observable implementation to correspond one-to-one with
observables
- Changed
PseudoObservableMapping
type (and field inSystem
type) toPseudoMeasurement
- Added
m.pseudo_observables
andm.pseudo_observable_mappings
fields toAbstractModel
subtypes - Pseudo-observable-related things are no longer
Nullable
. Instead, if no pseudo-measurement equation is implemented, the fields in the model object are empty dictionaries
- Changed
- Refactored means and bands computation
- Renamed
means_bands_all
tocompute_meansbands
- Renamed
meansbands_matrix_all
tomeansbands_to_matrix
- Renamed
- Added the following subspecs:
- Model 990, subspec 3: fixes bugs 1-4 in FRBNY-DSGE/DSGE-2015-Apr#1
- Model 1002, subspec 10: corrects the definition of
betabar
to usem[:σ_c]
instead ofσ_ω_star
- Model 1010, subspec 20: similarly corrects the definition of
betabar
- Implemented
transpose
forParameter
s so that matrix division (i.e. the(\)
operator) no longer throws a warning
detexify
function turns unicode characters into ASCII strings before writing them to CSV.
- Changed
Dict
s of indices in model object toOrderedDict
s - Upgrade all code for use with Julia v0.5.1 or higher
- Added the An-Schorfheide model, a simple three-equation New Keynesian model.
- Added Model 1010, an updated version of Model 1002.
- Added three optimization methods:
:simulated_annealing
,:LBFGS
, and:combined_optimizer
(which alternates between simulated annealing and LBFGS). - Added the
PseudoObservable
type and thepseudo_measurement
function, which defines pseudo-observables (linear combinations of states which are not observed) for each model, e.g. the output gap. - Implemented the forecast step, a suite of functions that forecast using
estimated parameters and compute means and bands of the forecasted series. The
top-level functions are
forecast_one
andmeans_bands_all
; see the forecasting and means and bands for more details.
- Added the
Observable
type; replaced thedata_series
anddata_transforms
fields in the model type definitions withobservable_mappings::OrderedDict{Symbol, Observable}
, which is initialized ininit_observable_mappings!
. kalman_filter
has been broken out into StateSpaceRoutines.jl.estimate
now saves only parameter draws, not the associated state-space matrices or the last filtered states for each draw.
- Added Model 1002, an updated version of Model 990.
- Added documentation for Model 1002 at docs/DSGE_Model_Documentation_1002.pdf. This pdf includes an overview of the economic theory underlying the model, a summary of the model's main equations, a description of the data used, a table of priors for the model's parameters, and more.
- Optim.jl's
MultivariateOptimizationResults
type requiresf_increased
field MersenneTwister
must be constructed with a seed
- Gensys no longer throws an error when system is indeterminate; instead, a warning is printed to the screen.
- Fix
OptimizationTrace
constructor according to Optim v0.6. See #6.
- Automatic dataset download and generation
- More robust and flexible treatment of dataset- and model-related dates
- Refactored computational settings
- Improved infrastructure for organizing input/output files
- Bug fix in treatment of zero lower bound in posterior computation
- Improved test coverage and documentation
- Input data matrices are CSV instead of HDF5
- Estimation output matrices are not flattened when saved