Page 1 of 1

Dynare does not solve purely forward models at higher order

PostPosted: Fri Oct 03, 2014 5:37 pm
by superztt
I am testing different specifications of a model. One version is almost like a static environment. All of the conditions involve contemporaneous variables, except the Euler equation with the expectation of next period's marginal utility.Then dynare reports " Dynare does not solve purely forward models at higher order." ''2nd and 3rd order approximation not implemented for purely forward models".

Initially I didn't specify bond because of, say, financial autarky. And there was no capital or other things surviving over periods. The problem disappeared if I specify bond in the budget constraint, albeit B=0 or if I impose stoch_simul( order=1).

I am confused. Can it be explained? Does it mean I have to put (-1) somewhere for higher order approximations, even if (-1) is not necessary on the economic grounds? Moreover,appears dynare doesn't treat Uc=beta*R*Uc(+1) as Uc(-1)=beta*R(-1)*Uc, does it? And it shouldn't. Cheers!

Re: Dynare does not solve purely forward models at higher or

PostPosted: Fri Oct 03, 2014 5:45 pm
by superztt
A similar question is dynare doesn't solve a purely static model. Does that mean I have to put (-1) (not sure if a purely backward looking model is solved) or (-1) and (+1) somewhere, despite of the necessity of economic meanings?

Re: Dynare does not solve purely forward models at higher or

PostPosted: Mon Oct 06, 2014 5:12 am
by jpfeifer
Always keep the correct timing as indicated by economic logic. Upgrade to the new Dynare version. It will tell you:
STOCHASTIC_SOLVER: Dynare does not solve purely forward models at higher order.
STOCHASTIC_SOLVER: To circumvent this restriction, you can add a backward-looking dummy equation of the form:
STOCHASTIC_SOLVER: junk=0.9*junk(-1);

The fake variable junk will not influence anything else.

Code: Select all
Uc=beta*R*Uc(+1)

is not the same as
Code: Select all
Uc(-1)=beta*R(-1)*Uc

because the first one has an expectation of Uc, i.e. E_t[Uc(+1)] while the second has Uc and R as being predetermined.