Steady state with Occbin


I am trying to use the Occbin toolkit downloadable from Matteo Iacoviello’s website (Matteo Iacoviello's Research Page) to solve a simple model with an occasionally binding capital adequacy constraint for bankers as in Iacoviello (2015).

Following the online documentation, I understood that “one does not need to specify the steady state of the alternative model. All models are approximated around the steady state of the reference model (which needs to satisfy the Blanchard-Kahn conditions).” However, this does not happen in this example, where by providing one SS only the toolkit does not work. Am I missing something?

In the main file runsim.m I set as a reference regime the one with binding constraint (model_benchmark.mod), and as the alternative regime the one with constraint not binding (model_benchmark_notbinding.mod). In the reference regime the Lagrange Multiplier is greater than zero, therefore the solution should switch to the alternative regime when the LM is lower than -LM_ss; in the alternative regime deposits are lower than a fraction gamma of loans therefore it should switch back when D becomes greater than gamma*L.

runsim.m (3.4 KB)
model_benchmark_notbinding.mod (5.9 KB)
model_benchmark.mod (6.0 KB)
model_benchmark_steadystate.m (3.5 KB)

Sorry, but we don’t provide support for the original toolkit. Dynare 5 has it’s own implementation of OccBin that should help getting around such issues.
That being said, a Dynare 4.6.4 compatible OccBin version is at GitHub - JohannesPfeifer/Occbin_update, which requires a steady state file like
model_benchmark_steadystate.m (3.5 KB)
My understanding is that OccBin needs to be able to run both mod-files once. But you only have a steady state file for the first regime. Hence, there is a crash because the the second mod-file cannot be executed.

Many thanks for your help. However, if I am not mistaken, the Dynare 5 toolkit works on a unique .mod file, therefore I guess you provide only one SS - the one in which the constraint is binding.
If this is the case, if you are working on a model with a borrowing constraint, the baseline case is the one in which the constraint bind and then you will need a positive shock to move the economy to a state in which it stops binding. Is there a way to study the opposite case, that is, a baseline scenario in which the constraint does not bind, and a negative shock can move the economy to a binding borrowing constraint?

OccBin only distinguishes between the baseline scenario, where the system will settle without shocks, and the alternative regime that the system can enter when shocked. Thus, it is flexible enough to handle cases where e.g. a ZLB becomes temporarily binding or collateral/borrowing constraint setups where the constraint it typically binding.

Alright, but is it correct to say that the Dynare 5 toolkit needs one steady state only (baseline model)? And if so, if the baseline scenario is the one in which the borrowing/collateral constraint does not bind (lagrange multiplier = 0), how does the system handle the alternative scenario without us providing a second steady state?

The second regime does not have its own steady state. If it did, you would never return to the baseline regime.

Alright, thanks. In this simple 4 equations model (on Dynare 5.4 built-in toolkit), I tried to take the easiest example (tests/occbin/model_borrcon · master · Dynare / dynare · GitLab) and do the opposite: to start from a SS in which the constraint is not binding (lambda = 0, b<M*y) and feed a negative shock to make the constraint binding. However, it still does not seem to work. Am I still missing something?

borrcon_ssnotbinding.mod (876 Bytes)

I am not sure I understand the setup. In the relax regime you have lambda=0, but your relax statement does not even include this value

relax lb<0;

Thanks for your help. If I change it to

relax lb <=0;

it still does not work. The relax condition should state that when the Lagrange multiplier is not any longer greater than zero, the constraint stops binding. Correct?