The zero lower bound issue in deterministic simulations

Dear Professor,
I am reaching out for assistance with a problem I encountered while working on a ZLB solution. I referred to the method outlined in Zero-Lower-Bound (ZLB) in the New Keynesian baseline model with Dynare | Willi Mutschler. However, in my approach, I used the nonlinear form of the model in the model block, instead of the linearized form as in the original mod file. Despite this, I utilized the linear_approximation option in the subsequent perfect_foresight_solver. After running the file, the resulting graph indicates that my interest rate is not being targeted at the desired value. I would greatly appreciate your guidance on this issue.

testdetzlb.mod (9.4 KB)

A linear approximation will of course remove the nonlinearity.

Does this mean that when conducting ZLB simulations, we need to use a linearized model and cannot employ the linear_approximation option?

No, it means that you cannot turn a nonlinear model into a linear one using linear_approximation, because you are removing the nonlinearity at the ZLB as well.

I understand now, but I still have a crucial question: even if we disregard the zero lower bound issue, my settings should theoretically maintain the interest rate at a set target value without change for an initial number of periods, thereby creating an interest rate targeting effect. However, the graph produced from the deterministic simulation does not show this rate targeting phenomenon.

Which settings should guarantee that?

varexo
%The duration for which the nominal interest rate remains constrained at the zero lower bound is determined exogenously by the value of eps_zlb
eps_zlb (long_name= ‘Indicator variable for the zero lower bound.’)
%Interest rate value during rate targeting.
eps_rzlb (long_name= ‘Interest rate target’)
;

model;
%Temporary variable for simulating the ZLB.
%Similar to the setup method in NK_ZLB_discretion.mod as found in %Willi Mutschler.
#rr=eps_zlb*eps_rzlb + (1-eps_zlb)*r_taylor;

%26
[name=‘Monetary policy.’]
@#if talyor== 1
%Taylor’s Rule.
log(1+r_taylor)=(1-rho_r)log(1+rss)+rho_rlog(1+r_taylor(-1))+rho_rpi*((pi-piss)/piss)+rho_ry*log(y/y(-1))-eps_r;

%34
[name=‘Actual nominal interest rate’]
r=max(rr,0);
…end;
%Setting for deterministic shocks.
%ZLB test

shocks;
%By using eps_rzlb, the interest rate can be reduced below 0, and other targeted interest rate values can also be set.
var eps_rzlb;
%Duration of interest rate targeting.
periods 1:50;
%Target interest rate
%If it is below 0, the preceding ZLB constraint will cause it to be set to 0.
values -1;
%Use the ZLB indicator exogenous variable to set the duration for targeting the interest rate.
var eps_zlb;
%Duration of interest rate targeting.
periods 1:50;
values 1;
end;

Here is the core part of my interest rate targeting setup, extracted from the mod file I uploaded, with the commented sections highlighted. The principle is to set an exogenous shock, eps_zlb, and then establish a temporary variable rr and an endogenous variable r_taylor to represent the interest rate according to Taylor’s Rule. Using the equation #rr=eps_zlb*eps_rzlb + (1-eps_zlb)*r_taylor; I set eps_zlb=1 for periods 1 to n, then set the value of eps_rzlb, which essentially makes the value of rr equal to the value of eps_rzlb during these periods. After period n, eps_zlb=0, and rr=r_taylor, switching to Taylor’s Rule. Utilizing r=max(rr,0), I assign this value to the interest rate variable in my original model, thereby imposing the ZLB constraint.

I see. And what goes wrong?

The interest rate did not remain fixed within the periods I set.

I would need to see the full codes to replicate the issue.

testdetzlb.mod (9.4 KB)
This is my mod

In Dynare 6 I simply get that the perfect foresight problem can not be solved.