Hello Prof. Pfeifer,
I have some rudimentary doubts, after reading your github “Born_Pfeifer_2018/Welfare”.
For UNconditional welfare,
outvalue=1/(1-betta)*oo_.mean(strmatch('Utility',var_list_ ,'exact'))
-oo_.mean(strmatch('Recursive_natural_welfare_equivalent',var_list_,'exact'))
You compute both Utility
and Recursive_natural_welfare_equivalent
via oo_.mean
.
For CONDitional Welfare,
y_sim = simult_(M_,options_,initial_condition_states,oo_.dr,shock_matrix,options_.order); %simulate one period to get value
Recursive_natural_welfare_equivalent=y_sim(strmatch('Recursive_natural_welfare_equivalent',M_.endo_names,'exact'),2);
oo_.planner_objective_value = evaluate_planner_objective(M_,options_,oo_);
outvalue=(oo_.planner_objective_value(1)-Recursive_natural_welfare_equivalent)*100;
You compute the welfare of alternative policy and the benchmark via evaluate_planner_objective
and simult_
respectively.
But MATLAB pops up that the former function does not support order = 2
.
In the old post, you said:
I saw it is second order approximation.
So what is “does not support order = 2
” real meaning?
@HelloDynare mentioned that:
If this statement is correct, then
My question is: is oo_.planner_objective_value(1)
accurate upto second order?
Moreover Can we approach the planner objective value via simult_
as well? such that we compute conditional welfare both of alternative policy and of the benchmark by the same method, just like what you do in the UNconditional welfare case.