IRFs issues in SW07 with ZLB

Dear Professor,

We got an issue regarding the IRFs (specifically for the sticky economy) in SW07 with ZLB. we are using the Occbin toolbox in dynare. ZLB seems to have no impact on the sticky economy. please find the following IRFs graph and mod file
SW07model.mod (5.6 KB)


Is there something wrong with the code or are we just misunderstanding something here?

Many thanks!

My hunch is that your way of inducing the ZLB does not work. Looking at your pictures, the rrf response is essentially 0, so there should be no difference.

Thank you so much for your response, Professor. I wanted to provide more details on how we incorporated the ZLB into the SW07 model. We introduced an “interest_” shock and set rnop=r in the normal case, following the Taylor rule. However, when the ZLB binds, we set rnop=1-1/0.99.

To implement this, we added an “occbin_constraints” block that introduced a binding condition. when rnop<1-1/0.99, it binds, and when rnop>1-1/0.99, it relaxes. We have attached a screenshot of the settings and an IRF for your reference.

We are not certain if there are any issues with this approach, but based on our understanding, it appears to be logically sound. we would appreciate your feedback on whether you see any potential issues with this implementation.

We also noticed that it appears to work on rnop and the flexible economy, but not in the sticky economy. We would appreciate any insights you may have on this.




But as soon as you hit the ZLB, the interest_-shock will not do much (except via interest rate smoothing in the notional rate).

Indeed, we understand that once interest shock hit zero, it can no longer affect the economy. Our question is since interest is capped at zero, this should also affect other variables, such as y (GDP). But looking at our IRFs, interest shock is binded by ZLB, but y has no difference.

So our question is still why the way we induce the ZLB does not work. We basically follow the guidance on the forum, but not sure where went wrong. It would be much appreciated that if you could give us some hint of which parts of the code might be the reasons.

My mistake. Your implementation is wrong. You define

r =  crpi*(1-crr)*pinf+cry*(1-crr)*(y-yf)+crdy*(y-yf-y(-1)+yf(-1))+crr*r(-1)
               +interest_  ;   
[name='Deposite rate',relax = 'ZLB']
[name='Deposite rate',bind = 'ZLB']

So r should be the notional interest rate in the absence of the ZLB, while rnop is the actual interest rate. But it’s r that shows up in all other equations.

Thank you so much, professor! Now, it works!!