Dear all,
I have a problem finding the steady state of my difference equation with shocks. I’m trying to replicate the results from a study, so I already took starting values very close to what the steady state should be. Therefore, I think the issue might be within my model itself.
Does anyone have an idea what potential error sources could be in my model?
I appreciate any kind of help or tips.
here is my model:
var n_t;
var pH_t;
var pL_t;
var p_t;
var N_t;
var NH_t;
var NL_t;
var l_t;
var lH_t;
var lL_t;
var L_t;
var e_t;
var eH_t;
var eL_t;
var K_t;
var A_t;
var y_t;
var k_t;
var r_t;
var w_t;
var wH_t;
var wL_t;
var vH_t;
var vL_t;
var tau_t;
var tauH_t;
var tauL_t;
var sH_t;
var sL_t;
var s_t;
var S_t;
var uH_t;
var uL_t;
var cH_tt1;
var cH_tt2;
var cL_tt1;
var cL_tt2;
var B_t;
var Z_t;
var z_t;
var v_t;
var Y_t; //tauH_t tauL_t für modified payg
varexo dn_t dpH_t dpL_t;
parameters phi_ gamma_ alpha_ beta_ pi_ delta_ rho_ chi_ theta_ n_T n_1 pH_1 pH_T pL_1 pL_T;
n_1 = 0.1;
n_T = -0.15;
p_1 = 0.59;
p_T = 0.82;
pH_1 = 0.6482;
pH_T = 0.8516;
pL_1 = 0.5736;
pL_T = 0.8111;
phi_ = 0.22;
rho_ = 0.85;
delta_ = 2.25;
chi_ = 2.0;
beta_ = 3.0;
alpha_ = 0.4;
gamma_ = 0.9936;
pi_ = 0.0483;
theta_ = 0.9;
model;
// Bevölkerungswachstumsrate n_t:
n_t = n_t(-1) - dn_t;
// Überlebenswahrscheinlichkeit pH_t:
pH_t = pH_t(-1) + dpH_t;
// Überlebenswahrscheinlichkeit pL_t:
pL_t = pL_t(-1) + dpL_t;
NH_t = phi_ * N_t;
NL_t = N_t - NH_t;
N_t = (1 + n_t(-1)) * N_t(-1)
vH_t = pi_ * A_t * wH_t * (1 - lH_t) * (1 + n_t) / pH_t;
vL_t = pi_ * A_t * wL_t * (1 - lL_t) * (1 + n_t) / pL_t;
v_t = pi_ * A_t * w_t * (1 - l_t) * (1 + n_t) / p_t;
cH_tt1 = ((1- pi_) * A_t * wH_t + (1 - lH_t(+1)) * (1 + n_t(+1)) * pi_ / (1 + r_t (+1)) * A_t(+1) * wH_t(+1)) / (1 + pH_t(+1) * rho_ + delta_);
cL_tt1 = ((1- pi_) * A_t * wL_t + (1 - lL_t(+1)) * (1 + n_t(+1)) * pi_ / (1 + r_t (+1)) * A_t(+1) * wL_t(+1)) / (1 + pL_t(+1) * rho_ + delta_);
cH_tt2 = rho_ / (1 + pH_t(+1) * rho_ + delta_) *((1 + r_t(+1)) * (1 - pi_) * A_t * wH_t + (1 - lH_t(+1)) * (1 + n_t(+1)) * pi_ * A_t(+1) * wH_t(+1));
cL_tt2 = rho_ / (1 + pL_t(+1) * rho_ + delta_) *((1 + r_t(+1)) * (1 - pi_) * A_t * wL_t + (1 - lL_t(+1)) * (1 + n_t(+1)) * pi_ * A_t(+1) * wL_t(+1));
lH_t = delta_ / (1 + pH_t(+1) * rho_ + delta_) * ( 1 + ((1 - lH_t(+1)) * (1 + n_t(+1)) * pi_ * A_t(+1) * wH_t(+1)) / ((1 + r_t(+1)) * (1 - pi_) * A_t * wH_t));
lL_t = delta_ / (1 + pL_t(+1) * rho_ + delta_) * ( 1 + ((1 - lL_t(+1)) * (1 + n_t(+1)) * pi_ * A_t(+1) * wL_t(+1)) / ((1 + r_t(+1)) * (1 - pi_) * A_t * wL_t));
sH_t = (pH_t(+1) * rho_) / (1 + pH_t(+1) * rho_ + delta_) * (1 - pi_) * A_t * wH_t - (1 + delta_) / (1 + pH_t(+1) * rho_ + delta_) * ((1-lH_t(+1))* (1 + n_t(+1)) * pi_) / (1 + r_t(+1)) * A_t(+1) * wH_t(+1);
sL_t = (pL_t(+1) * rho_) / (1 + pL_t(+1) * rho_ + delta_) * (1 - pi_) * A_t * wL_t - (1 + delta_) / (1 + pL_t(+1) * rho_ + delta_) * ((1-lL_t(+1))* (1 + n_t(+1)) * pi_) / (1 + r_t(+1)) * A_t(+1) * wL_t(+1);
z_t = Z_t / (A_t * L_t);
K_t = N_t(-1) * s_t(-1) + Z_t(-1);
S_t = N_t * s_t + Z_t;
s_t = phi_ * sH_t + (1 - phi_) * sL_t;
uH_t = log(cH_tt1) + delta_ * log(lH_t) + pH_t(+1) * rho_ * log(cH_tt2);
uL_t = log(cL_tt1) + delta_ * log(lL_t) + pL_t(+1) * rho_ * log(cL_tt2);
A_t = (1 + gamma_) * A_t(-1);
B_t = pi_ * A_t * w_t * L_t + tau_t * N_t;
Y_t = K_t^alpha_ * (A_t * L_t)^(1-alpha_);
Z_t = 0;
y_t = Y_t / (A_t * L_t);
k_t = K_t/(A_t * L_t);
w_t = (1 - alpha_) * k_t^alpha_;
wH_t = w_t / ((1-phi_) / beta_ + phi_);
wL_t = wH_t / beta_;
r_t = (alpha_ * k_t^(alpha_ -1)) - 1;
L_t = ((1-lH_t) * phi_ * N_t + (1 - lL_t) * (1- phi_)) * N_t;
p_t = phi_ * pH_t + (1- phi_) * pL_t;
l_t = 1 - ((1-lH_t) * phi_ + (1 - lL_t) * (1- phi_));
e_t = 1-l_t;
eH_t = 1-lH_t;
eL_t = 1-lL_t;
tau_t = 0;
tauH_t = 0;
tauL_t = 0;
end;
initval;
dn_t = 0;
dpH_t = 0;
dpL_t = 0;
n_t=1;
pH_t=1;
pL_t=1;
p_t=1;
N_t=1;
NH_t=1;
NL_t=1;
l_t=0;
lH_t=0;
lL_t=0;
L_t=1;
e_t=1;
eH_t=0.99;
eL_t=1;
K_t=1;
A_t=1;
y_t=1;
k_t=0.99;
r_t=1;
w_t=1;
wH_t=1;
wL_t=1;
vH_t=1.2;
vL_t=0.9;
tau_t=1;
tauH_t=1;
tauL_t=1;
sH_t=1;
sL_t=1;
s_t=1;
S_t=1;
uH_t=1;
uL_t=1;
cH_tt1=1;
cH_tt2=1;
cL_tt1=1;
cL_tt2=1;
B_t=1;
Z_t=1;
z_t=1;
v_t=1;
Y_t=1; //tauH_t tauL_t für modified payg
end;
steady;
shocks;
var dn_t;
periods 1 2 3 4;
values 0.0833334 0.0833334 0.0833334 0;
var dpH_t;
periods 1 2 3 4;
values 0.0678 0.0678 0.0678 0;
var dpL_t;
periods 1 2 3 4;
values 0.0792 0.0792 0.0792 0;
end;
perfect_foresight_setup( periods=20);
perfect_foresight_solver ;
and here what im getting if I run the model:
Starting Dynare (version 6.1).
Calling Dynare with arguments: none
Starting preprocessing of the model file ...
Found 42 equation(s).
Evaluating expressions...
Computing static model derivatives (order 1).
Normalizing the static model...
Normalization failed with cutoff, trying symbolic normalization...
Finding the optimal block decomposition of the static model...
9 block(s) found:
8 recursive block(s) and 1 simultaneous block(s).
the largest simultaneous block has 12 equation(s)
and 12 feedback variable(s).
Computing dynamic model derivatives (order 1).
Normalizing the dynamic model...
Finding the optimal block decomposition of the dynamic model...
3 block(s) found:
2 recursive block(s) and 1 simultaneous block(s).
the largest simultaneous block has 12 equation(s)
and 9 feedback variable(s).
Preprocessing completed.
Preprocessing time: 0h00m00s.
dynare_solve: starting value results in nonfinite/NaN value. Randomize initial guess...
Residuals of the static equations:
Equation number 1: n_t : 0.000000
Equation number 2: pH_t : 0.000000
Equation number 3: pL_t : 0.000000
Equation number 4: NH_t : 0.780000
Equation number 5: NL_t : 1.000000
Equation number 6: N_t : -1.000000
Equation number 7: vH_t : 1.103400
Equation number 8: vL_t : 0.803400
Equation number 9: v_t : 0.903400
Equation number 10: cH_tt1 : 0.756098
Equation number 11: cL_tt1 : 0.756098
Equation number 12: cH_tt2 : 0.585366
Equation number 13: cL_tt2 : 0.585366
Equation number 14: lH_t : -0.576632
Equation number 15: lL_t : -0.576632
Equation number 16: sH_t : 0.840983
Equation number 17: sL_t : 0.840983
Equation number 18: z_t : 1.000000
Equation number 19: K_t : 0.000000
Equation number 20: S_t : 0.000000
Equation number 21: s_t : 0.000000
Equation number 22: uH_t : Inf
Equation number 23: uL_t : Inf
Equation number 24: A_t : -0.993600
Equation number 25: B_t : 0.951700
Equation number 26: Y_t : 0.000000
Equation number 27: Z_t : 1.000000
Equation number 28: y_t : 0.000000
Equation number 29: k_t : -0.010000
Equation number 30: w_t : 0.402407
Equation number 31: wH_t : -1.083333
Equation number 32: wL_t : 0.666667
Equation number 33: r_t : 1.597581
Equation number 34: L_t : 0.000000
Equation number 35: p_t : 0.000000
Equation number 36: l_t : 0.000000
Equation number 37: e_t : 0.000000
Equation number 38: eH_t : -0.010000
Equation number 39: eL_t : 0.000000
Equation number 40: tau_t : 1.000000
Equation number 41: tauH_t : 1.000000
Equation number 42: tauL_t : 1.000000
Error using print_info (line 33)
Impossible to find the steady state (the sum of squared residuals of the static equations is Inf).
Either the model doesn't have a steady state, there are an infinity of steady states, or the guess values
are too far from the solution
Error in steady (line 143)
print_info(info,options_.noprint, options_);
Error in NDC1.driver (line 981)
steady;
Error in dynare (line 310)
evalin('base',[fname '.driver']);
thanks in advace and again I appreciate every typ:)