Page 1 of 1

model_diagnostics and STEADY_STATE()

PostPosted: Wed Jul 20, 2016 8:39 am
by mikhP
Hello everyone!
I would like to use model_diagnostics command in my model. But I noticed that it works strange with STEADY_STATE(...).
For example these three equations obviously aren't colinear

Code: Select all
var A_X A_M A_N;
varexo Eta_A_X Eta_A_M Eta_A_N;
parameters rho_A_X rho_A_M rho_A_N sd_eta_A_X sd_eta_A_M sd_eta_A_N;
rho_A_X = 0.738;     
rho_A_M = 0.438;     
rho_A_N = 0.517; 
sd_eta_A_X = 0.0758;     
sd_eta_A_M = 0.0858;     
sd_eta_A_N = 0.0679;       

model;
A_N = A_N(-1)^rho_A_N*STEADY_STATE(A_N)^(1-rho_A_N)*exp(Eta_A_N);                                                           
A_M = A_M(-1)^rho_A_M*STEADY_STATE(A_M)^(1-rho_A_M)*exp(Eta_A_M);                                                           
A_X = A_X(-1)^rho_A_X*STEADY_STATE(A_X)^(1-rho_A_X)*exp(Eta_A_X);                                                           
end;

shocks;
var Eta_A_X; stderr sd_eta_A_X;
var Eta_A_M; stderr sd_eta_A_M;
var Eta_A_N; stderr sd_eta_A_N;
end;

steady_state_model;
A_N = 1;
A_M = 1;
A_X = 1;
end;

steady;
check;
model_diagnostics;

//stoch_simul(irf=40, periods=0, order = 1, nograph);


But you get following message

model_diagnostic: the Jacobian of the static model is singular
there is 3 colinear relationships between the variables and the equations
Relation 1
Colinear variables:
A_X
Relation 2
Colinear variables:
A_M
Relation 3
Colinear variables:
A_N
Relation 1
Colinear equations
1

Relation 2
Colinear equations
2

Relation 3
Colinear equations
3

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.


So need I exclude all STEADY_STATE(...) commands for diagnostic the model?
Thank you!

Re: model_diagnostics and STEADY_STATE()

PostPosted: Wed Jul 20, 2016 9:05 am
by jpfeifer
They are collinear, because you essentially introduced a unit root so that the steady state of these equations is not uniquely determined anymore within the model. Take the first equation: any value you pick as the steady state of A_N will be a steady state of this equation. Say A_N in steady state is 10:
Code: Select all
10 = 10^rho_A_N*STEADY_STATE(10)^(1-rho_A_N)*1=10;

This works for any value.
Usually, you fix
Code: Select all
STEADY_STATE(A_N)^(1-rho_A_N)

to set the steady state of A_N. But now you want to determine the steady state of A_N endogenously. This is simply not possible, because the equation does not contain enough information anymore.

This problem regularly occurs in New Keynesian models where the inflation rate and the nominal interest rate cannot be simultaneously endogenously determined. See http://www.dynare.org/phpBB3/viewtopic.php?f=1&t=5860

Re: model_diagnostics and STEADY_STATE()

PostPosted: Mon Jul 25, 2016 8:06 am
by mikhP
Dear Professor! Thank you very much for your response, it helped me.