Negative Lagrange multipliers for inequality constraints


I simulated a model with borrowing constraints and assumed that the borrowing constraints are binding and that the Lagrange multipliers associated with these constraints are positive. Then the idea is to verify that they are always positive throughout my simulations. But this is actually not the case, I get both positive and negative values for the Lagrange multipliers in my simulation.
I don’t know how to interpret the negative Lagrange multipliers associated with the borrowing constraints : does this simply mean that the borrowing constraints are not binding in these periods ? But I would rather expect the Lagrange multiplier to be zero in that case…

Thanks for any help !

First of all, please try the current unstable version to see whether this may be related to a bug that has recently been fixed. Second, check whether the negative multipliers are bigger than can be ascribed to numerical error. If yes, please also check your setup. Also: how did you implement the complementary slackness constraint?


actually I didn’t implement the complementary slackness constraint, I just assumed that the inequality constraints were binding and I looked at the Lagrange multipliers throughout my simulations to check whether they were strictly positive or not, as in Iacoviello’s paper Financial Business Cycles. Therefore, this may make sense to get negative Lagrange multipliers when the inequality constraints are not binding, right ?

I am not sure how to implement the complementary slackness constraint in Dynare. Is there some documentation on how to do it ?

Thanks a lot

From your response I infer that you are using a stochastic approach. In this case it is not really possible to have an occasionally binding constraint (stochastic extended path might work). Negative multipliers in this case are then a sign that the constraint would not be binding in this case (see also the check in Jermann/Quadrini (2012): Macroeconomic Effect of Financial Shocks, AER).


still regarding binding inequality constraints (borrowing constraints):

when I solve my model in Dynare with variables defined in levels, I am able to identify in my simulations whether the borrowing constraint binds or not by looking at the sign of the Lagrange multiplier.

However, when I define all my variables in logs (including the Lagrange multiplier lambda associated with the borrowing constraint that I write exp(log_lambda) in the equations where it appears), I am not able to detect anything contradictory in the periods when the borrowing constraint does not bind. It might be related to the fact that by defining the variable in log, I implicitly assume that the Lagrange multiplier is always positive, but then this should lead to some equation in the system not being satisfied, but which one ?

What I do is that I define all variables in logs except the Lagrange multiplier associated with the borrowing constraint, so that I can still identify when it is negative. But I am wondering how comes that the model runs perfectly and I am not able to detect the problem when I define the Lagrange multiplier in log terms ?


I am not entirely following. Your multiplier needs to be positive. When using the log of the multiplier, you are effectively dealing with percentage deviations of the multiplier. Therefore, if the deviation of the log multiplier from its steady state becomes bigger than 1=100 percent, you are in trouble, because effectively the multiplier just became negative.