Bayesian estimation in a model with an occasionally binding ZLB

Hi everyone,

I really hope someone is able to help or offer some advice.

I have a two-country DSGE model with QE (from Alpanda & Kabaca (2020) augmented with an occasionally binding constraint on the interest rate (using occbin). I now want to calibrate the model parameters (starting with just the shock parameters and persistence) but I am unsure of how to do so when I have used Occbin in the simulated model.

I have the code for the bayesian estimation of the linear model. When simply defining the two rules, and writing the ‘occbin_constraints’ block, dynare preprocessing fails (code attached). I am aware that occbin is meant for simulation and not estimation but after it was included in dynare 5.0, I was hoping there was some shortcut to estimating a model using the toolbox.

QEspillover_estimation_v1_new_OccBin.mod (32.3 KB)

Hope one of you can provide some insight :slight_smile: Thank you in advance!

Best regards

You can do estimation with Occbin using either the inversion filter or the piecewise Kalman filter. But setting up the model is a bit tricky. See tests/occbin/filter · master · Dynare / dynare · GitLab for examples.

Thank you very much for the quick reply professor Pfeifer. I have tried to follow the examples but the Blanchard-Kahn conditions are not satisfied. When simulating the original model, I encounter no problems, so I am unsure what I am doing wrong. I am not very familiar with bayesian estimation.

Also I wish to only estimate the shock persistence and shock std. deviations and I am thus told: “The posterior mode file QEspillover_estimation_v1_new_mode has been generated using another specification of the model or another model! Your mode file contains estimates for 86 parameters, while you are attempting to estimate only 43 parameters”
However, I don’t know how to read and edit the _mode file and whether it is even a true problem.

I really hope you can help. I have attached my mod file and the data and data transformation .m file

data.xlsx (914.6 KB)
QEspillover_estimation_OccBin.mod (32.7 KB)
QEspillover_estimation_v1_new_mode.mat (55.4 KB)
.
QEspillover_data_growth.m (1.0 KB)

Best regards

  1. If the model has unit roots, you need to set diffuse_filter to prevent Blanchard-Kahn errors.
  2. The warning can be ignored if you only changed the set of estimated parameters, but did not touch the naming.

Dear Johannes @jpfeifer , when I replicate this file, I encounter the below error. How can I deal with the problem ? Best Regards, Yusuf

Undefined variable “occbin” or class “occbin.plot_regimes”.
Error in NKM.driver (line 457)
occbin.plot_regimes(oo_.occbin.smoother.regime_history,M_,options_)
Error in dynare (line 281)
evalin(‘base’,[fname ‘.driver’]);

Did you use Dynare 6?