Page 1 of 1

ERROR MESSAGE

PostPosted: Mon Nov 03, 2014 4:28 pm
by msh855
Hi,

I am receiving this error message " ERROR: in the 'steady_state' block, variable 'theta2' is undefined in the declaration of variable 'varrho "

here it is my steady state block

Code: Select all
steady_state_model;

% Asset Markets

varrho=exp((1-tauk)*rk+theta2*((1-tauh)*rh-(1-tauk)*rk)-delta+ (((1-gamma)/2)*(theta2)^2)*sigmat^2 +(0.5)*(theta2)*(1-theta2)*sigmat^2);
shr=0;
ex1=0;                                                                                                                       
ex2=0;
Rap = Rf^(1-gamma);
theta1=0;     
theta2=((1-tauh)*rh-(1-tauk)*rk)/(gamma*(sigmat^2));

% Optimal choice

u=1-(beta^eps)*varrho^(eps-1);
u=v^(1-(1/mu));
k=(1-theta2)*(1-u)/(1+gr)-b;
h=theta2*(1-u)/(1+gr);
kh=k/h; 

R=(1-theta2)*Rk+theta2*Rh;     
Rk=1+(1-tauk)*rk-delta;
Rh=1+(1-tauh)*rh-delta;
Rf=Rk;

%% Average growth rate

gr=R*(1-u);


%% Supply side

rk=exp(A)*alpha*kh^(alpha-1);
rh=exp(A)*(1-alpha)*kh^(alpha);
y=exp(A)*(kh^alpha)*h;

b=((gov-tauk*rk*k-tauh*rh*h)/(gr-(1-tauk)*rk+delta));

gov=p*y;                         
A=ln(A_bar);                   
sigmat=sigma_y/theta2; 

end;


Any ideas on what's wrong ?

many thanks

Re: ERROR MESSAGE

PostPosted: Mon Nov 03, 2014 4:40 pm
by jpfeifer
Most probably theta2 was not declared as a parameter.

Re: ERROR MESSAGE

PostPosted: Mon Nov 03, 2014 4:52 pm
by msh855
theta2 I have declared it in the "var", is an endogenous variable. here there are my declarations

Code: Select all
% 1. Declaring endogenous variables

var varrho                       
    v                         
    Rap                         
    Rf                         
    theta1                     
    theta2                     
    ex1                     
    ex2                         
    shr                         
    u                           
    k                         
    h                         
    b                   
    kh                       
    R                           
    Rk                           
    Rh                         
    rk                           
    rh                       
    y                           
    gr                           
    sigma                   
    sigmat                 
    A                       
    gov ;                                 


%% Declaring predetermined variables
%% Those that are indexed in the paper with t_{t+1} while are  actually choosen at t

predetermined_variables b k h theta1 theta2 ;


%% Declaring exogenous variables

varexo e           
       eta;         

parameters beta           
           gamma           
           eps             
           delta         
           alpha         
           rho             
           lambda         
           sigma_y       
           tauk           
           tauh           
           Abar   
           p     
           mu;         

 beta  = 0.9090;
gamma  = 3;
  eps  = 0.8;
delta  = 0.06;
alpha  = 0.36;
  rho  = 0.95;
lambda = 0.002;
sigma_y= 0.1769;
 tauk  = 0.1839;
tauh   =0.1955;
Abar   =0.6817;
p      =0.18;
mu     =1/eps;

Re: ERROR MESSAGE

PostPosted: Mon Nov 03, 2014 5:14 pm
by jpfeifer
Then this is the problem. You cannot use theta2 to compute another variable if theta2 was not set before.

Re: ERROR MESSAGE

PostPosted: Mon Nov 03, 2014 5:23 pm
by msh855
I cannot understand then the meaning of this block. I actually, it is the first time I use it, after I checked one of your codes.

To the extend I understood, I shall put the model ordered, starting with a guess ? Or shall I use an actual value ? In fact I know the values of the steady state of my model for given parameters. But the purpose is to calculate the steady state model if some of the parameters change.

UPDATE

I am receiving this error message now: The steadystate file did not compute the steady state

My new steady state block is:

Code: Select all
steady_state_model;
A=ln(Abar);
theta2=0.331722;
k=0.481069;
h=0.282029;
b=0.0870984;
sigmat=sigma_y/theta2;
kh=k/h;
rk=exp(A)*alpha*kh^(alpha-1);
rh=exp(A)*(1-alpha)*kh^(alpha);
varrho=exp((1-tauk)*rk+theta2*((1-tauh)*rh-(1-tauk)*rk)-delta+ (((1-gamma)/2)*(theta2)^2)*sigmat^2 +(0.5)*(theta2)*(1-theta2)*sigmat^2);
u=1-(beta^eps)*varrho^(eps-1);
v=u^(1/(1-eps));
psi=v^(1-gamma);
Rk=1+(1-tauk)*rk-delta;
Rh=1+(1-tauh)*rh-delta;
Rf=Rk;
Rap = Rf^(1-gamma);
R=(1-theta2)*Rk+theta2*Rh;
gr=R*(1-u);
y=exp(A)*(kh^alpha)*h;
gov=p*y;                     
shr=0;
ex1=0;                                                                                                                       
ex2=0; 
theta1=0;     
end;

Re: ERROR MESSAGE

PostPosted: Mon Nov 03, 2014 7:36 pm
by jpfeifer
Ok, so you got rid of the incorrect recursive steady state definition in your steady state file.
The message you obtain now tells you that your provided steady state does not solve your entered model. That means that either your analytical steady state is wrong or some of your model equations. Check the residuals using
Code: Select all
resid(1);

to see from which equation the problem stems from.

Re: ERROR MESSAGE

PostPosted: Mon Nov 03, 2014 9:34 pm
by msh855
Thank you. But I am unfamiliar with what you suggest about the residuals. How I can understand if something is wrong with an equation by looking at the residuals ? they should be close to zero I guess correct ?

My original model is in non-linear form, where to get a closed form solution for a particular variable that I am interested I used a second order approximation and the rest of the model left as it is. In the steady state of the model, this is not necessary as I could get a closed form solution for the particular variable. You believe that there something wrong with this approach ?

Re: ERROR MESSAGE

PostPosted: Tue Nov 04, 2014 11:27 am
by jpfeifer
If an equations shows a residual, there is either a mistake in that equation or the steady state of a variable used in the equation is wrong.

There is nothing wrong with your approach as any Taylor approximation is perfectly accurate in the approximation point. I am rather afraid that your analytical steady state is incorrect.

Re: ERROR MESSAGE

PostPosted: Tue Nov 04, 2014 12:58 pm
by msh855
According to the output for the residuals (please check below), I should essentially focus on equations 1, 7,8. Is that correct ?

Code: Select all
Equation number 1 : -4945005947.5595
Equation number 2 : 0
Equation number 3 : 0
Equation number 4 : 0
Equation number 5 : -0.28309
Equation number 6 : 0
Equation number 7 : NaN
Equation number 8 : NaN
Equation number 9 : -0.035236
Equation number 10 : 0
Equation number 11 : 0.48107
Equation number 12 : 2.7306e-06
Equation number 13 : -0.48106
Equation number 14 : 0
Equation number 15 : 0
Equation number 16 : 0
Equation number 17 : 0
Equation number 18 : 0
Equation number 19 : -0.33138
Equation number 20 : -1.0049
Equation number 21 : -0.44283
Equation number 22 : -1.8158e-06
Equation number 23 : 0
Equation number 24 : 0
Equation number 25 : 0.53328
Equation number 26 : -0.53328

Re: ERROR MESSAGE

PostPosted: Tue Nov 04, 2014 4:58 pm
by jpfeifer
Exactly. Big residuals like this often indicate a problem with taking logs.