Forward looking & predetermined variables

Dear all,

I’m very new to both Dynare and econometrics, but have some experience in
computer science and dynamic programming.
Regarding the use of Dynare, I have two very simple questions:
(I read the recommended topics of “martom - Feb 1, 2006, and bigbigben - Sept 28, 2006”
but didn’t get a clear answer)


  1. I am very confusing about “forward-looking variables” vs. “predetermined variables”.
    It seems to me that the statement,

x(t+1) = Ax(t) + b, (x is forward-looking)

is exactly the same as

x(t) = Ax(t-1) + b. (x is predetermined)

Then, in Dynare how can I know that my variables are forward looking or predetermined?
Unfortunately, I couldn’t find clear definitions about these types of variables.

  1. This is related to the first question. I want to model the simplest demand-supply equations.
    Here, I have 3 endogenous variables: Price, Qdemand & Qsupply and 2 exogenous variables, shock1 & shock2;

Qdemand = Qsupply;
Qdemand = 200 - 5Price + shock1;
Qsupply = 25 + 12.5
Price + shock2;

Now, Dynare requires me to specify at least 1 forward-looking variable & 1 pre-determined variable; what is the proper way to
specify the time indices in this simplest model? In order to make it work, I specify the time indices as follows:

Qdemand = Qsupply;
Qdemand = 200 - 5Price(-1) + shock1;
Qsupply(+1) = 25 + 12.5
Price + shock2;

This works fine, but it seems to me quite ad-hoc since Qdemand and Qsupply now are of different types.
Does anyone have any suggestions? I’m very new to this.

Thanks and Kind Regards,
Ratthachat Chatpatanasiri

  1. The difference between “forward-looking variables” vs. “predetermined variables” has to do with conditional expectations. In your example, Dynare treats the statement
    x(t+1) = Ax(t) + b, (x is forward-looking) as E_t x(t+1) = Ax(t) + b.
    In contrast, in x(t) = Ax(t-1) + b. (x is predetermined), you could also add an conditional expectation at time t, but it would be redundant. Due to this conditional expectations operator, both statements are not (!) the same.

  2. I am not sure if Dynare is the right application to solve static problems like the one you mention. I guess your code should look like this:

var Qdemand Qsupply Price;
varexo shock1 shock2;

model;
Qdemand = Qsupply;
Qdemand = 200 - 5*Price + shock1;
Qsupply = 25 + 12.5*Price + shock2;
end;

shocks;
var shock1; stderr 0.01;
var shock2; stderr 0.01;
end;

stoch_simul(order=1);

Of course, you get an error message, when autocovariances are computed, which is natural as there is no intertemporal link in your model.

Dear jpfeifer,
Thank you very much for your kind answers. Those did help. :smiley:
Ratthachat