Error of OccBin

Hi all,

I try to simulate OccBin (Dynare 5.1).

I successfully simulate optimal discretionary policy case of Gali (2015, Chapter 5). (Slightly modifying Johannes’s file)

However, I fail to simulate optimal commitment policy case of Gali (2015, Chapter 5). (Also slightly modifying Johannes’s file)

I have the following message:
Error using print_info (line 32)
Occbin: Simulation terminated with periodic solution (no convergence).

Error in occbin.solver (line 70)
print_info(error_flag, options_.noprint, options_)

Error in optimal_w_qe.driver (line 261)
oo_ = occbin.solver(M_, oo_, options_);

Error in dynare (line 281)
evalin(‘base’,[fname ‘.driver’]);

However, the old version of OccBin (e.g., Dynare 4.5.7) works very well.

I think Dynare 5.1 may have some problems.

Could you help this issue?

Thank you so much in advance.

Hi rubyss,

could you submit your code (mod-file)?

Dear Max,

Thank you for your reply.

Please find attached two mod files.

commitment.mod (3.1 KB)
discretion.mod (3.2 KB)

Many thanks!

Your codes do not run. z is not defined. Apart from that, you cannot use i to check for a relaxing of the constraint. It should be

name 'zlbcon'; bind i<=-ibar/(1+ibar); relax xi_3>0;

Thank you so much Johannes!

I would like to ask you why under discretion, “relax i>-ibar/(1+ibar)” works well and generate same results to “relax xi_3>0”?

Best wishes.

It’s a matter of numerical precision. If you set simul_maxit=1000 you will get an error message that a periodic solution was found. This is caused by oscillations between the two regimes. Occbin has a hard time finding out whether the ZLB is binding or not due to observations close to the ZLB. You can fix this by introducing a slight tolerance for reverting to the non-binding state:

name 'zlbcon'; bind i<=-ibar/(1+ibar); relax i>-ibar/(1+ibar)+1e-8;
1 Like

Thank you so much!!