Error: matrix must be positive definite with real diagonal

hi, I have to estimate a model but I get errors regarding the Hessian matrix (the error is in the title of the topic). we have taken the values we assigned from a Smets and Wouters paper (2007), can you help me? thank you please it’s urgent.
I enclose the data and my code

%BASED ON CHRISTIANO ET AL “NOMINAL RIGIDITITES AND THE EFFECTS OF A MONETARY POLICY SHOCK” JPE (2005)
%DOES NOT CONSIDER CASH IN ADVANCE (WORKING CAPITAL)
%INTEREST RATE RULE (NO MONEY)

var labobs robs pinfobs dy dc dinve dw lambda c h w R inv pk rk k u y pi mc mrs Winf Rint a ep el eb erk ei er eg epi ew;
varexo epsa epsp epsl epsb epsrk epsi epsr epspi epsw epsg;

% lambda: Lagrange multiplier
% c: consumption
% h: hours worked
% w: real wage
% R: nominal interest rate
% inv: investment
% pk: Tobin’s Q
% rk: real return on capital
% u: capital utilization
% k: capital stock
% y: output
% pi: price inflation
% mc: marginal costs
% mrs: marginal rate of substitution
% Winf: wage inflation
% Rint: real interest rate
% labobs robs pinfobs dy dc dinve dw: Smets and Wouters (2007) observable variables
% a: technology shock
% ep: preference shock
% el: labor supply shock
% eb: risk premium shock (CB interest rate)
% erk: risk premium shock (rental rate of capital)
% ei: investment specific shock
% er: monetary shock
% epi: price markup shock
% ew: wage markup shock
% eg: government spending shock

parameters bet sig vphi b alp delta eta kappa sig_u gamw gamp
lambw lambp alpw phi1 phi2 phi3
mup trend constpi constlab g_y
rhoa rhop rhol rhob rhork rhoi rhor rhopi rhow rhog;
% y_h k_y k_h c_y i_y rk_bar w_bar sig_a
%------------------------------------------------------------------------------------------%
% PARAMETERS %
%------------------------------------------------------------------------------------------%

%1)PREFERENCES
sig =1; % intertemporal elasticity
b =0.65; % degree of habit persistence
bet = (1.02)^(-1/4); % subjective discount factor
vphi =1; % inverse of Frisch elasticity

%2)TECHNOLOGY
alp = 0.36; % share of capital
delta =0.025; % depreciation rate

%3)CAPITAL ADJUSTMENT COST AND UTILIZATION
kappa = 2.48; % capital adjustment costs
sig_u = 0.27; % sig_a=sig_u/(1-sig_u)
%sig_a = 0.01; % gam2/gam1 (gam1 and gam2 parameter governing capacity cost function)

%4)CALVO PARAMETERS
lambw = 0.75; %on wages
lambp = 0.75; %on prices

%5)INDEXATION
gamw =1; %on wages
gamp =1; %on prices

%6)ELASTICITIES OF SUBSTITUTIONS
eta = 6; % price-elasticity of demand for a differianted good
alpw = 6; % wage -elasticity of demand for a differianted labor input
mup = eta/(eta-1); % price mark_up

% STEADY STATE
g_y = 0.2;
%

%------------------------------------------------------------------------------------------%
% MONETARY RULE %
%------------------------------------------------------------------------------------------%
phi1 = 1.5; % monetary rule parameter (on inflation)
phi2 = 0.5; % monetary rule parameter (on output)
phi3 = 0; % monetary rule parameter (on lagged interest rate)

%------------------------------------------------------------------------------------------%
% SHOCKS PERSISTENCES %
%------------------------------------------------------------------------------------------%

rhoa = 0.9;
rhop = 0.5;
rhol = 0.5;
rhob = 0.5;
rhork = 0.5;
rhoi = 0.5;
rhor = 0;
rhopi = 0.5;
rhog = 0.5;
rhow = 0.5;

%------------------------------------------------------------------------------------------%
% MEASUREMENT EQUATIONS CONSTANTS %
%------------------------------------------------------------------------------------------%

trend=0;
constlab=0;
constpi=0;

model(linear);

#k_h =((1-bet*(1-delta))/(betalp)mup)^(1/(alp-1));
#y_h =(k_h)^alp;
#k_y =k_h
(y_h)^(-1);
#i_y =delta
k_y;
#c_y =1-i_y-g_y;
#rk_bar =(1/bet-1+delta);
#w_bar =(1-alp)/alp*(k_h)*rk_bar;
#sig_a = sig_u/(1-sig_u);
#pi_bar = 1+constpi/100;
#R_bar = pi_bar/bet;
#constr = (R_bar-1)*100;

// EQ. 1 Marginal utility of consumption
lambda= sig/((1-betb)(1-b))(bc(-1)+betbc(+1)-(1+betb^2)c)+ (1/(1-betb))(ep-betbep(+1));

// EQ. 2 Euler equation
lambda= eb+lambda(+1)+(R-pi(+1));

// EQ. 3 Investment FOC
inv = 1/(kappa*(1+bet))*(pk+ei) + 1/(1+bet)*inv(-1) + bet/(1+bet)*inv(+1);

// EQ. 4 Capital FOC
pk = -(R - pi(+1)+eb) + bet*(1-delta)pk(+1) + betrk_barrk(+1)-betrk_bar*erk;

// EQ. 5 Utilization FOC
u =(1/sig_a)*rk-erk(-1);

// EQ. 6 Capital accumulation equation
k = (1-delta)k(-1) + deltainv+delta*ei;

// EQ. 7 Resource constraint
y = c_yc+i_yinv+k_yrk_baru+g_y*eg;

// EQ. 8 Price NKPC
(1+betgamp)pi=((1-betlambp)(1-lambp)/lambp)mc+betpi(+1)+gamp*pi(-1)+epi;

// EQ. 9 Marginal cost
mc = (1-alp)w+alprk-a;

// EQ. 10 Wage NKPC
w=((1-betlambw)(1-lambw))/((1+bet)lambw)(mrs-w)+(bet/(1+bet))*(pi(+1)+w(+1))+(gamw/(1+bet))*pi(-1)+(1/(1+bet))w(-1)-((betgamw+1)/(1+bet))*pi+ew;

// EQ. 11 Capital to hours ratio
w + h = rk + u + k(-1);

// EQ. 12 Production function
y = alp*(u + k(-1))+(1-alp)*h +a;

// EQ. 13 Taylor rule
R = phi3R(-1)+(1-phi3)(phi1pi+phi2y)+er;

// EQ. 14 Real interest rate
Rint = R - pi(+1);

// EQ. 15 Wage inflation
Winf = w-w(-1)+ pi;

// EQ. 16 Marginal rate of substitution
mrs=ep+el+vphi*h-lambda;

// EQ. 17 TFP shock
a = rhoa * a(-1) + epsa;

// EQ. 18 Preference shock
ep = rhop * ep(-1) + epsp;

// EQ. 19 Labor supply shock
el = rhol * el(-1) + epsl;

// EQ. 20 Risk premium shock I
eb = rhob * eb(-1) + epsb;

// EQ. 21 Risk premium shock II
erk = rhork * erk(-1) + epsrk;

// EQ. 22 Investment specific shock
ei = rhoi * ei(-1) + epsi;

// EQ. 23 Monetary policy shock
er = rhor * er(-1) + epsr;

// EQ. 24 Price markup shock
epi = rhopi * epi(-1) + epspi;

// EQ. 25 Wage markup shock
ew = rhow * ew(-1) + epsw;

// EQ. 26 Government spending shock
eg = rhog * eg(-1) + epsg;

// measurement equations

dy=y-y(-1)+trend;
dc=c-c(-1)+trend;
dinve=inv-inv(-1)+trend;
dw=w-w(-1)+trend;
pinfobs = pi + constpi;
robs = R + constr;
labobs = h + constlab;

end;

steady;
check;

shocks;
var epsa;
stderr 0.4618 ;
var epsb;
stderr 1.8513 ;
var epsg;
stderr 0.6090 ;
var epspi;
stderr 0.1455 ;
var epsw;
stderr 0.2089 ;
var epsr;
stderr 0.2397 ;
var epsrk;
stderr 0.6017 ;

var epsp;
stderr 0.1 ;
var epsl;
stderr 0.1 ;
var epsi;
stderr 0.1 ;

end;

estimated_params;
// PARAM NAME, INITVAL, LB, UB, PRIOR_SHAPE, PRIOR_P1, PRIOR_P2, PRIOR_P3, PRIOR_P4, JSCALE
// PRIOR_SHAPE: BETA_PDF, GAMMA_PDF, NORMAL_PDF, INV_GAMMA_PDF

%standard deviation degli shock
stderr epsa,0.4618,0.01,3,INV_GAMMA_PDF,0.1,2;
stderr epsb,0.1818513,0.025,5,INV_GAMMA_PDF,0.1,2;
stderr epsg,0.5607,0.01,3,INV_GAMMA_PDF,0.1,2;
stderr epspi,0.1455,0.01,3,INV_GAMMA_PDF,0.1,2;
stderr epsw,0.2089,0.01,3,INV_GAMMA_PDF,0.1,2;
stderr epsr,0.2397,0.01,3,INV_GAMMA_PDF,0.1,2;
stderr epsrk,0.46017,0.01,3,INV_GAMMA_PDF,0.1,2;

stderr epsp,0.1,0.01,3,INV_GAMMA_PDF,0.1,2;
stderr epsl,0.1,0.01,3,INV_GAMMA_PDF,0.1,2;
stderr epsi,0.1,0.01,3,INV_GAMMA_PDF,0.1,2;

%persistenze dei nostri shock
rhoa,.9676 ,.01,.9999,BETA_PDF,0.5,0.20;
rhob,.2703,.01,.9999,BETA_PDF,0.5,0.20;
rhog,.9930,.01,.9999,BETA_PDF,0.5,0.20;
rhopi,.8692,.01,.9999,BETA_PDF,0.5,0.20;
rhow,.9546,.001,.9999,BETA_PDF,0.5,0.20;
rhor,.3,.01,.9999,BETA_PDF,0.5,0.20;
rhork,.5724,.01,.9999,BETA_PDF,0.5,0.20;

rhop,.5,.01,.9999,BETA_PDF,0.5,0.20;
rhol,.5,.01,.9999,BETA_PDF,0.5,0.20;
rhoi,.5,.01,.9999,BETA_PDF,0.5,0.20;

%altri parametri strutturali del modello
sig,1.2312,0.25,3,NORMAL_PDF,1.5,0.375;
b,0.7205,0.001,0.99,BETA_PDF,0.7,0.1;
vphi,2.8401,0.25,10,NORMAL_PDF,2,0.75;

%kappa,0.455,0,1,GAMMA_PDF,0.9,0.2;
kappa,6.3325,2,15,NORMAL_PDF,4,1.5;

%sig_u,0.11,0.1,0.9,BETA_PDF,0.5,0.15;
sig_u,0.2648,0.01,1,BETA_PDF,0.5,0.15;

gamp,0.3291,0.01,0.99,BETA_PDF,0.5,0.15;
lambp,0.7813,0.5,0.95,BETA_PDF,0.5,0.10;
gamw,0.4425,0.01,0.99,BETA_PDF,0.5,0.15;
lambw,0.7937,0.3,0.95,BETA_PDF,0.5,0.1;

phi1,1.7985,1.0,3,NORMAL_PDF,1.5,0.25;
phi2,0.0893,0.001,0.5,NORMAL_PDF,0.125,0.05;
phi3,0.8258,0.5,0.975,BETA_PDF,0.75,0.10;

trend,0.3982,0.1,0.8,NORMAL_PDF,0.4,0.10;
constpi,0.7,0.1,2.0,GAMMA_PDF,0.625,0.1;//20;
constlab,1.2918,-10.0,10.0,NORMAL_PDF,0.0,2.0;

end;

%varobs h u y c;
varobs dc dinve dy labobs pinfobs dw robs;

%ho sostituito maint_data_itot con usmodel_data_update
estimation(optim=(‘MaxIter’,200),datafile=us_data,mode_compute=4,first_obs=1,lik_init=2,prefilter=0,mh_replic=2500,mh_nblocks=2,mh_jscale=0.20,mh_drop=0.2)dc dinve dy labobs pinfobs dw robs;

%estimation(optim=(‘MaxIter’,200),datafile=maint_data_itot,mode_compute=4,first_obs=1,presample=4,lik_init=2,prefilter=0,mh_replic=2500,mh_nblocks=2,mh_jscale=0.20,mh_drop=0.2) h u y c;

us_data.xls (130.5 KB)

modello1.mod (9.3 KB)

When I run your model, there are two issues:

  1. Not all parameters are identified.
  2. The parameters kappa and phi2 run into the prior bounds
    You can see this in the mode_check-plots.