Page 1 of 1

Compute value function in Dynare

PostPosted: Mon Feb 17, 2014 7:42 pm
by Thisisusername
Hi All,

I'd like to ask is it possible compute the value function in Dynare? Say,
Value = log(C) + beta*Value(+1);

Of course with the FOC for C.

Thanks You!

Re: Compute value function in Dynare

PostPosted: Tue Feb 18, 2014 6:26 am
by jpfeifer
Yes. When you have a running model with all FOCs, just enter this equation, which is a recursive definition of the value function. Dynare will then compute the approximated solution.

You should just be aware that this has nothing to do with the global solution technique of value function iteration.

Re: Compute value function in Dynare

PostPosted: Tue Feb 25, 2014 8:22 pm
by Thisisusername
Got it. Thanks a lot!

Re: Compute value function in Dynare

PostPosted: Tue Jun 03, 2014 12:21 pm
by suxijian
Hi,Jpfeifer, I also have a similar problem with value function in Dynare. I release a new topic in the forum,could you look at my problem and give some instructions? Many thanks.

As you told Thisisusername, it seems that what I need to do is just write down the value function following the FOCs in the Dynare code? I input the code

Code: Select all
value=log(c)-theta*(h^(1+phi))/(1+phi)+beta*value(+1)


but the code is fail to run and the feedback is
[img]Starting Dynare (version 4.4.2).
Starting preprocessing of the model file ...
ERROR: sample.mod: line 23, cols 1-5: Unknown symbol: value

??? Error using ==> dynare at 174
DYNARE: preprocessing failed[/img]

I am not sure whether I have understand what you tell Thisisusername. Please take a look at it if you have the time.

Re: Compute value function in Dynare

PostPosted: Wed Jun 04, 2014 4:15 pm
by Daniel Bendel
You have to declare a new variable in the var command which you call value in your case.

example:

value=log(c)-theta*(h^(1+phi))/(1+phi)+beta*value(+1)

then:
var value;

Otherwise dynare does not know your varibale "value" as indicated by the error message.

Re: Compute value function in Dynare

PostPosted: Thu Jun 05, 2014 12:17 pm
by suxijian
Many thanks for you instructions. I have modified the code according to your suggestions, and I get the result. However, I still have confusions for the question.

When I run the code and get the results showed as below, do the results show that the value function is equal to -107.826288? It seems unreasonable. Can you look at the results and point out how to find the value? Here are the code and parts of the results:

POLICY AND TRANSITION FUNCTIONS
y c k a h b value
Constant 1.080953 0.803479 11.083988 0 0.291870 0 -107.826288
(correction) 0.000270 -0.000113 0.000383 0 0.000114 0 0.108131
k(-1) 0.005358 0.038542 0.941817 0 -0.012547 0 1.256982
a(-1) 1.836717 0.424583 1.419062 0.950000 0.341715 0.025000 29.193035
b(-1) 0.837086 -0.318740 1.419062 0.025000 0.341715 0.950000 18.213807
e 1.911522 0.456074 1.455448 1.000000 0.350477 0 30.245919
u 0.830840 -0.347518 1.455448 0 0.350477 1.000000 18.376483
k(-1),k(-1) -0.000693 -0.000620 -0.000072 0 0.000640 0 -0.032006
a(-1),k(-1) 0.031013 0.011201 0.018983 0 -0.005454 0 -0.620228
a(-1),a(-1) 1.354840 0.198327 1.191903 0 0.113219 0 5.826632
b(-1),k(-1) 0.026057 -0.024450 0.018983 0 -0.005454 0 -0.620228
b(-1),a(-1) 1.010716 0.003915 2.383805 0 0.226438 0 11.653263
b(-1),b(-1) 0.118206 0.149375 1.191903 0 0.113219 0 5.826632
e,e 1.473867 0.220058 1.253809 0 0.119100 0 6.129264
u,e 1.036212 -0.015958 2.507619 0 0.238199 0 12.258528
u,u 0.102686 0.165780 1.253809 0 0.119100 0 6.129264
k(-1),e 0.031946 0.012476 0.019470 0 -0.005594 0 -0.636131
k(-1),u 0.026588 -0.026065 0.019470 0 -0.005594 0 -0.636131
a(-1),e 2.826253 0.417711 2.444928 0 0.232244 0 11.952065
a(-1),u 0.989536 -0.006871 2.444928 0 0.232244 0 11.952065
b(-1),e 1.058095 -0.004158 2.444928 0 0.232244 0 11.952065
b(-1),u 0.221009 0.314583 2.444928 0 0.232244 0 11.952065


APROXIMATED THEORETICAL MOMENTS

VARIABLE MEAN STD. DEV. VARIANCE
y 1.0847 0.0897 0.0080
c 0.8065 0.0529 0.0028
k 11.1870 1.2603 1.5883
a -0.0000 0.0340 0.0012
h 0.2917 0.0119 0.0001
b -0.0000 0.0340 0.0012
value -107.7649 2.9169 8.5081

Re: Compute value function in Dynare

PostPosted: Thu Jun 05, 2014 3:25 pm
by Daniel Bendel
a negative value for the value is not unplausible and comes from the fact that you use a log-function for your utlity of consumption. Thus taking the log of a number smaller than 1 will result into a value that is negative.

Re: Compute value function in Dynare

PostPosted: Sat Jun 07, 2014 7:05 am
by suxijian
Thank you for your explanation, and I will check about it.