One of the eigenvalues is close to 0/0 (the absolute value of numerator and denominator is smaller than 0.0000! If you believe that the model has a unique solution you can try to reduce the value of qz_zero_threshold

Hi, professor. I am trying to replicate a paper and test its models fitness by finding the variance and covariance between variables. The dynare code is as below:

var y h K i c g A;

varexo e;

parameters beta delta eta rho phi psi alpha tauF tauY tauC sigmae;

beta = 1.05^(-0.25);   
delta = 1.1^(0.25)-1;
eta=1; 
%estimated by short run dynamic
rho=0.9742556389406869;
psi=4.3249;
phi=5.0327; 
%baseline value estimated using 2019 data
alpha=0.648882898108761;
tauC=0.033604937825684; 
tauF=0.011171237806898;
tauY=0.025274387012007;
sigmae=0.01;

model;

(h^(eta))*c=(1-tauY)/(1+tauC)*alpha*(y/h)*(1-phi/(alpha*(1-tauY))*((1+beta*y(+1)/y)*h-h(-1)-beta*y(+1)/y*h(+1)));
beta *c/c(+1)*((1 - tauY ) * (1 - tauF ) * (1 - alpha)*(y(+1)/K(+1))  + 1 - delta-psi/2*((i(+1)/K(+1)-delta)^(2))+psi*(i(+1)/K(+1)-delta)*i(+1)/K(+1)) = 1;
g=(tauY-tauF)*alpha*y*(1-phi/(alpha*(1-tauY))*((1+beta*y(+1)/y)*h-h(-1)-beta*y(+1)/y*h(+1)))+tauY*y*(1-tauF)*(1-alpha)+tauC*c+tauF*y;
y=A*(K^(1-alpha))*(h^(alpha));
K=i+(1-delta)*K(-1);
log(A)=(1-rho)*log(A)+rho*log(A(-1))+e;
y*(1-phi/2*((h-h(-1))^(2)))=c+i+psi/2*((i/K-delta)^(2))*K+g;
end;

initval;
A= 6.048012046973227e+06;
c=6.280727426135292e+10;
g=4.640632672723721e+09;
h=0.920392639094456;
i=1.950059196092336e+10;
K=8.086938457501512e+11;
y=8.694849889500000e+10;
end;


shocks;
var e= sigmae^2;
end;

steady;

stoch_simul(hp_filter=1600);

Ive got the steady state value results, but I could not proceed to stoch_simul. The warning is:
Error in print_info
One of the eigenvalues is close to 0/0 (the absolute value of numerator and denominator is smaller than 0.0000!
If you believe that the model has a unique solution you can try to reduce the value of qz_zero_threshold.

I did model diagnosis, and the warning is: The presence of a singularity problem typically indicates that there is one redundant equation entered in the model block, while another non-redundant equation is missing. The problem often derives from Walras Law.

But I dont think any of my equations is redundant. I will be really grateful if you can help me out.

Many Thanks,
Suty

The process

cannot be correct- Why does A appear on both sides?

Also, the initial values are crazy.

Hi prof,

Thank you for your reply. You are right this equation

should be:
log(A)=(1-rho)log(a)+rholog(A(-1))+e; where a is the steady state value for TFP. However, the model still gives the same warning of error.

The initial values are calculated using real data and steady state expressions, and they are not converted into millions or thousands.

Best,
Shuting

Please provide the updated version of the mod-file. Note that your model features constant returns to scale, so units are rather arbitrary.

Simulation2.mod (1.3 KB)
Hi Prof,
Please see the attachment. Much appreciated!

Again, do an appropriate normalization:

var y h K i c g A;

varexo e;

parameters a beta delta eta rho phi psi alpha tauF tauY tauC sigmae;

beta = 1.05^(-0.25);   
delta = 1.1^(0.25)-1;
eta=1; 
%estimated by short run dynamic
rho=0.9742556389406869;
psi=4.3249;
phi=5.0327; 
%baseline value estimated using 2019 data
alpha=0.648882898108761;
tauC=0.033604937825684; 
tauF=0.011171237806898;
tauY=0.025274387012007;
sigmae=0.01;
a=1;

model;

(h^(eta))*c=(1-tauY)/(1+tauC)*alpha*(y/h)*(1-phi/(alpha*(1-tauY))*((1+beta*y(+1)/y)*h-h(-1)-beta*y(+1)/y*h(+1)));
beta *c/c(+1)*((1 - tauY ) * (1 - tauF ) * (1 - alpha)*(y(+1)/K(+1))  + 1 - delta-psi/2*((i(+1)/K(+1)-delta)^(2))+psi*(i(+1)/K(+1)-delta)*i(+1)/K(+1)) = 1;
g=(tauY-tauF)*alpha*y*(1-phi/(alpha*(1-tauY))*((1+beta*y(+1)/y)*h-h(-1)-beta*y(+1)/y*h(+1)))+tauY*y*(1-tauF)*(1-alpha)+tauC*c+tauF*y;
y=A*(K^(1-alpha))*(h^(alpha));
K=i+(1-delta)*K(-1);
log(A)=(1-rho)*log(a)+rho*log(A(-1))+e;
y*(1-phi/2*((h-h(-1))^(2)))=c+i+psi/2*((i/K-delta)^(2))*K+g;
end;

initval;
A= 1;
c=0.6;
g=0;
h=0.920392639094456;
i=0.5;
K=10;
y=1;
end;


shocks;
var e= sigmae^2;
end;

steady;

stoch_simul(hp_filter=1600);

works.