Estimation error: point prior used for parameter

Hi Dynare Community,

I’m trying to replicate Brand and Mazelis (BM)‘s “Taylor-rule consistent estimates of the natural rate of interest” using dynare. The problem I’m having is that after specifying the same initial value and Bayesian priors as the authors’, I’m getting

Error using set_prior (line 166)
Error in prior for a_y2: you cannot use a point prior in estimation. Either increase the prior
standard deviation or fix the parameter completely.Error in prior for a_r: you cannot use a point
prior in estimation. Either increase the prior standard deviation or fix the parameter completely.

When I fixed ‘a_y2’ and ‘a_r’ using BM’s estimated values, the dynare program is able to run but the estimated equation parameters and state variables (g, z, y*, r_star*) are off. Since BM had estimated their model using dynare, there’s obviously something wrong with my dynare program but I haven’t been able to fix it given the error message. Any help is much appreciated.

The link to BM’s paper is https://www.ecb.europa.eu/pub/pdf/scpwps/ecb.wp2257~b842f47cf9.en.pdf.
I wanted to attach my code and data, but wasn’t able to because I had just created this account.

I’m not able to attach the code yet so I’m copying and pasting it here

% BM - ECB 2019

var y pi i y_star y_gap r_star r_gap g z;

varexo y_gap_e, pi_e, y_star_e, g_e, z_e, pi_star, r, i_e;
varobs y, pi, i;

parameters a_y1, a_y2, a_r, b_pi, b_y, rho_i, rho_pi, rho_y;

% y
a_y1=1.5;
% a_y2=-0.5; % if initial value of a_y1+a_y2 > 1, then no stable equilibrium error
% a_r=-0.1;

% pi
b_pi=0.673;
b_y=0.0775;
% i
rho_i=0.5;
rho_pi=2.5;
rho_y=1;

%==============================================
% model specification
%==============================================
model(linear);

% y
y=y_star+y_gap;
r=r_star+r_gap;

y_gap = a_y1y_gap(-1) + a_y2y_gap(-2) + (a_r/2)*(r_gap(-1) + r_gap(-2)) + y_gap_e;

% pi
pi = (1-b_pi)pi_star + (b_pi/2)(pi(-1)+pi(-2)) + b_y*(y_gap(-1)) + pi_e;

% i
i = rho_ii(-1) + (1-rho_i)(r_star + pi_star + rho_pi*(pi - pi_star) + rho_y*y_gap) + i_e;

%-----------------------------------------
% state equations
%-----------------------------------------

% r_star
r_star = 4 * g + z; % adj to have per annum as unit
% z
z = z(-1) + z_e;
% g
g = g(-1) + g_e;
% y_star
y_star = y_star(-1) + g(-1) + y_star_e;
end;

%==============================================
% stationary state (as starting point for estimation)
%==============================================
% steady_state_model;
% y_gap=0;
% r_gap=0;
% pi=pi_star;
% i=r+pi;
% end;
%
% steady;
% check;
% stoch_simul(order=1);

%==============================================
% parameters to estimate
%==============================================
estimated_params;

% y
a_y1, 1.4, 0, 2, uniform_pdf, 1, 2; %gap(-1)
a_y2, -0.597, uniform_pdf, -1, 0;
a_r, -0.071, uniform_pdf, -0.5, 0;

% pi
b_pi, 0.673, 0, inf, uniform_pdf, 0, 1; %pi(-1)
b_y, 0.0775, 0, inf, uniform_pdf, 0, 1; %gap(-1)

% i
rho_i, 0.5, 0, inf, uniform_pdf, 0, 1;
rho_pi, 2.5, 0, inf, uniform_pdf, 1, 4;
rho_y, 1, 0, inf, uniform_pdf, 0, 2;

stderr y_gap_e, 0.4, inv_gamma_pdf, 0.67, 0.22;
stderr pi_e, 0.75, inv_gamma_pdf, 0.67, 0.22;
stderr z_e, 0.3, inv_gamma_pdf, 0.3, 0.22;
stderr y_star_e, 0.5, inv_gamma_pdf, 0.67, 0.22;
stderr g_e, 0.1, inv_gamma_pdf, 0.1, 0.22;
corr y_gap_e, y_star_e, -0.25, beta_pdf, 0, 0.3, -1, 1;
end;

%==============================================
% parameters initialization
%==============================================
% initval;
% y_gap=0;
% r_gap=0;
% end;

% histval;
% y_gap(0)=0;
% r_gap(0)=0;
% end;

%==============================================
% Estimation
%==============================================

% identification(diffuse_filter);

estimation(datafile=‘…/…/data/BM_data.csv’,
dirname=‘…/BM_output/’,
% mode_check,
first_obs=3, % needs to be larger than # of lags
mode_compute=6, % do MCMC
diffuse_filter, % to estimate models with non-stationary observed variables
kalman_algo=3, % use Multivariate Diffuse Kalman Filter for non-stationary models
consider_all_endogenous,
% smoothed_state_uncertainty, % computation of the variance of smoothed estimates, i.e. varT(yt)
smoother,
mh_replic=50000,
mh_nblocks=2,
mh_drop=0.5,
mh_conf_sig=0.95,
plot_priors=0,
nodisplay,
graph_format=pdf);

is a uniform distribution with mean -1 and standard deviation 0. That is clearly wrong.

I had confused the parameter values in BM’s paper with those required by dynare. Thank you!