Jermann and Quadrini (2012) with OccBin

Hi all,

I’m attempting to solve Jermann and Quadrini (2012) where I include the case of the enforcement constraint not binding. I am using the OccBin function and want the enforcement constraint to bind in the steady state (so bind is setting mu, the lagrange multiplier on the enforcement constraint such that mu=0).

The code runs and I find mu>0 in the steady state such that the enforcement constraint is binding. But I’m not sure that the model is ever in the regime where it doesn’t bind (mu=0 and in ‘bind’ regime).

Is there a way I can check that I am switching regimes at some point? It’s possible I’m not setting the financial shocks in a way that would trigger the change of regime.

JandQ_OccBin.mod (3.9 KB)

Thanks in advance for your help.

Regards
Niall

Hi all,

It didn’t take long for me to realize I was quite far away from the solution here. I’ve set up the model now with two clear reference regimes 1. The RBC model with no constraint on the firms problem and 2. The RBC model when the constraint binds. I have the constraint not binding in the steady state and for the attached file I can generate the response to a productivity shock such that the constraint binds.

However, the model is very sensitive to the size of the shock with only a very high productivity shock causing the constraint to bind. Even with a slightly lower shock the model does not solve and for reasonable productivity shocks I get the error:

Occbin: Simulation did not converge – infinite loop of guess regimes

I have tried the solution of introducing a margin or error in the Occbin_constraints to help the model distinguish between the two regimes easier but it doesn’t help allow for a reasonable shock to get the model to solve.

Any solutions for making the model less sensitive to the parameterization or size of the shock is appreciated.

JandQ_OccBin.mod (4.1 KB)

Kind regards
Niall

Sorry for the delay. Your setup seems wrong. You have

[name = 'Borrowing constraint', relax = 'MU']
xi*(k-b/(1+r))=z*k(-1)^(theta)*n^(1-theta);

% 12. Production function
y=z*k(-1)^(theta)*n^(1-theta);

which means

[name = 'Borrowing constraint', relax = 'MU']
xi*(k-b/(1+r))=y;

The bind condition

xi*(k-b/(1+r)) > y

should never happen.

1 Like