State dependent impulse response functions

Hey all,

once again a general question:
can dynare generate state dependent impulse response functions? To make this clearer:

Suppose one wants to investigate the effect of a government spending shock: my intuition tells me that the size of the fiscal multiplier should vary, if the economy is in a state where output is below or higher than its steady state value. How can I investigate this with dynare?

Has anyone experience with this topic?

Thank you all!
Daniel

Hello Daniel,

if the model is linear, the fiscal multiplier should be the same, no matter whether output is below or above the steady state. (In a linear model, impulse responses are state independent.)

Best,
Niklas

But what if I do second order approximation?

Then Dynare generates a generalized IRF that is state dependent. However, the GIRF is computed at the ergodic mean. We are working on a version that allows specifying the point at which the IRFs is generated, but it will still take some time.

1 Like

Can i find some documentation on how GIRF is implemented in dynare and what options are available? In particular, is it possible to generate asymmetric irfs in dynare (i.e different irfs for negative and positive values for the same shock) under a second order approximation?

Please see the RBC_state_dependent_GIRF.mod on my homepage.

Dear Johannes,

I have a question concerning your code to compute the state-dependent GIRFs. In particular, concerning the GIRF conditional on being in the state with low capital, why do you use the deterministic steady state as a starting point instead of the ergodic mean? Is there any economic meaning behind this?

Thanks in advance

There is no meaning behind this. The exercise simply was to compute the GIRF at capital 10% below the steady state. We could also have used 10% below the ergodic mean. This would simply be answering a different question.

Hi,

Is there any update on this? I want to generate IRFs in response to oil-price shock at different levels of Rhat (see figure)

Spread-eps-converted-to.pdf (8.0 KB)

I have had a look at the following file RBC_state_dependent_GIRF.mod but I am not sure if this is what I need…

It seems that whether capital is 10% below its steady-state or not has no effect on the starting value of other endogenous variables in the model… I want the starting value of all endogenous variables to be model-consistent with the arbitrary value of capital I choose… In other words, I want to shock the system when the system is at a certain point on the state-space consistent with capital being 10% below the steady-state.

I can imagine how to do this. I first need to workout the exact point on state-space for which capital is 10% less than steady state. I then need to use the decision rules to workout the values for remaining endogenous variables. Does this make sense?

Any help will be great.

Best,
Ahmed

Yes, the file

is what you need. In the RBC model, only the state variables matter for the dynamics. So there is nothing else to set. I don’t understand what you mean with

A particular value for the state of capital has e.g. no bearing on the value for the state TFP.

Thanks for getting back.

I think what is confusing me is the following: A lower ‘k’ would mean a lower ‘y’ in the model. But we are only changing the starting value of ‘k’ before doing simulations. So what is the value of ‘y’ when we shock the system? Is the value of ‘y’ lower than the steady-state value (in line with lower ‘k’)? or is it the steady-state value?

Output Y is a control variable that is a function of the state capital. If you set capital to a particular value, output will be consistent with this value. This immediately follows from the policy functions. Only states matter.

Great. I see what is happening now.

How will things change if I do this for the control variable rather than the state variable? Lets say I change ‘y’. What will happen to ‘k’ and ‘c’?

Nothing will happen to control variables. The only thing that is relevant are the state variables.

Thanks a lot. Grateful for clarifying this further

Dear Professor,

I attempted to use your code to generate the state-dependent impulse response function. However, when I run the code on my computer, I encounter the following error:

Not enough input arguments.

Error in simult_ (line 37)
iter = size(ex_,1);

Error in RBC_state_dependent_GIRF.driver (line 269)
y_baseline = simult_(starting_point,oo_.dr,shocks_baseline,options_.order);

Error in dynare (line 281)
evalin(‘base’,[fname ‘.driver’]);

Error in state_dependent_analysis (line 18)
dynare RBC_state_dependent_GIRF

Could you please advise me on how to resolve this issue?

Best Regards,
mpl

This looks like a version incompatibility. The Dynare 6 version is currently DSGE_mod/RBC_state_dependent_GIRF/RBC_state_dependent_GIRF.mod at master · JohannesPfeifer/DSGE_mod · GitHub