Constraint always not binding under Dynare 5.2?

Hi everyone.

I’ve implemented occasional binding collateral constraints on Iacoviello (2015, ‘Financial Business Cycles’, RED) and got some impulse response to shocks with the OccBin toolkit under Dynare 4.5.7 (thanks to the toolkit developers).

Such results, however, are derived from parameter sets that are estimated when the collateral constraints are always binding. Therefore, I want to estimate such parameters under Dynare 5.2. Before implementing Bayesian estimation, I had to make sure the toy model (with occasional binding constraints, parameters that have been estimated by Iacoviello used here as it’s a calibration approach) working well under Dynare 5.2.

The problem I’ve encountered is, under Dynare 5.2, the impulse response shows that the collateral constraint is never binding after I set up the OccBin options and corresponding shocks, as the bottom right panel of the following figure demonstrates.

When I implement such occasional binding collateral constraints with OccBin toolkit under Dynare 4.5.7, the impulse response shows that the collateral constraint slacks for the first twelve periods and then back to the binding state, as the up-left panel of the following figure demonstrates.

220108_mh_fbc1-fbcOBC_9-16.pdf (17.1 KB)

I can’t figure out where I went wrong and hope someone can show me the way.
Thanks for your time.

Followings are required files.

fbctest_s_steadystate.m (4.0 KB)
fbctest_s.log (7.0 KB)
fbctest_s.mod (11.0 KB)

From what I can see, you set

[name='borrowing_constraint', bind='LTV']
lambdas=0.141332;

So if the constraint binds, lambdas will take that value. But to revert back, you have

occbin_constraints;
name 'LTV';  relax lambdas>0.1413321;  bind lambdas<0.141332;
end;

Given that lambdas=0.141332 it can never be true that lambdas>0.1413321.

Professor,

Thanks for the reply.
The mistake you point out is a remainder of experiment.
Since the result shows that it is non-binding once the exogenous hits while all the three threshold values were 0.141332; I’ve tried to tweak the threshold value for the command ‘relax’ and ‘bind’.

I’ve also replaced the threshold value of ‘bind’ and ‘relax’ by the steady state of lambdas in variables, i.e., (1-betasrs)/(1-betasrhos). This time, however, the mechanism of occasional binding didn’t work at all. The IRF that I got overlapped with the IRF when there are no occasionally binding constraints.

Thanks your time, I will try to figure out what went wrong.

Zheng-Ze.