Unconditional versus conditional Welfare measure


#1

Dear all,
I have a question regarding the proper way of calculating the value of both the unconditional and conditional (upon starting from the steady state) welfare measure. From what I see after browsing similar questions here in the forum, in Dynare the unconditional welfare corresponds to the unconditional ergodic mean of the welfare variable:

Welfare_pos=strmatch(‘Welfare’,M_.endo_names,‘exact’);
Welfare_uncon=oo_.mean(Welfare_pos);

By contrast, the conditional welfare criterion (upon starting in the steady state) is given by the constant in the policy and transition functions output that Dynare produces. Guess its interpretation is…the conditional ergodic mean which in a 2nd order approximation is different from the steady state. The way I compute is:

Welfare_pos=strmatch(‘Welfare’,M_.endo_names,‘exact’);
Welfare_con = oo_.dr.ys(Welfare_pos)+0.5*oo_.dr.ghs2(oo_.dr.inv_order_var(Welfare_pos));

Is that right? I am asking since I obtain very weird values for the conditional welfare both in sign and in values as they are very different from the unconditional welfare measure.

Best,
Peter


Value of Welfare
#2

Yes, that is correct. If you are in the steady state, you can use the steady state plus the uncertainty correction. You can cross check this with

initial_condition_states = repmat(oo_.dr.ys,1,M_.maximum_lag); %get steady state as initial condition
shock_matrix = zeros(1,M_.exo_nbr); %create shock matrix with number of time periods in rows
y_sim = simult_(initial_condition_states,oo_.dr,shock_matrix,options_.order); %simulate one period to get value
Welfare_con_2=y_sim(Welfare_pos,2)*100; %read out gap

as in

The interpretation is that this is the welfare conditional on being in the steady state, but factoring in that the model is stochastic, i.e. that shocks in the future may happen.


#3

Perfect match, many thanks Johannes.