Shocks to variables

Hello,

I would like to shock some variables in my model that are endogenous. If I want to shock let’s say the utilization rate of my capital goods, does this shock to uK only appears in the production function or do I have to attach this shock also in the budget constraint of households that receives r*uK ?

Same for a shock on consumption goods. If I want to attach a variable shock to the consumption of goods C, do I attach this exogenous shock variable only to C in the utility function or also in the budget constraint ?

Thank you

Hi,

You should attach the shock to any occurrence of the variable in the model. I would create a new variable for the utilization rate including the shock, for instance u_K^{\star} = u_K e^{\varepsilon_t} with \varepsilon_t a zero mean exogenous variable or if you want to have persistence an endogenous variable modelled as an AR(1) process, and use u_K^{\star} instead of u_K everywhere in the model. Otherwise, you cannot interpret the shock as a shock on the utilization rate (it would be a shock on the production function).

Best,
Stéphane.

1 Like

thank you @stepan-a . To interpret results after, I interpret u_k or u_k_star ?

And if the shock must be attached to the variable, why in the case of investment shocks, the shock is attached to investment only in the capital accumulation rule and not in the BC of households who make the investments ?

Hi,

The issue is the interpretation of the shock, not the interpretation of an endogenous variable.

I don’t know your model. Often when we have this shock associated to investment in the law of motion for the capital stock, the shock is interpreted as an efficiency shock attached to investment in the technology of capital accumulation. If that’s the case there is no reason to have the shock in the household’s budget constraint.

Best,
Stéphane.

1 Like

Yes, as @stepan-a said, the investment specific technology shock is about how one unit of investment in the budget constraint is transformed into capital. If the shock is negative, then one unit of investment creates less than one unit of capital. That why it does not show up in the budget constraint.

@jpfeifer @stepan-a thank you to you both

@stepan-a @jpfeifer Hello again,

I implemented what Stéphane suggested by having a new variable u* and replacing u by u* everywhere in the model. By doing so, after running the model, my agents are making decisions as if there were no shock on that utilization rate, which gives me unchanged results for 20 periods of simulation. Results are equal for each year as if there were no shock… This looks not intuitive, does it?

Thanks

Unless there is an infinitely high cost of adjusting utilization that does not make sense.

The only variable moving is u_k because u_k = u_k_star/shock. If I replace in all equations of my model u_k*shock by u_k_star and I add the equation u_k_star=u_k * shock, then the agents will make decisions only based on u_k_star regardless of the size of the shock as it does not appear in any decision equations…

The shock only appears in this equation: u_k_star=u_k * shock

Not that the utilization rate is an endogenous variable in my model. Let’s say that the variable utilization rate decision is the following

shock*u_k = r_k / betta

u_k_star = u_k*shock

if r_k=0.075, betta= 0.99, then whether there is a shock or not, u_k_star is going to be equal to 0.075/0.99

I think we misunderstood what you are trying to do. You cannot directly shock a choice variable in that way. The household can immediately undo the shock by adjusting the choice variable accordingly.

Oh yes, sorry. This is why everything is undone when I run the code. I’m trying to shock a choice variable. I want to keep the utilization rate of capital endogenous in my model but also be able to shock it to study some policies. Is that possible ? I would prefer no to make the utilization rate exogenous

I tried to counter the problem, I put u_k_star everywhere in the model. However, in the decision equation of the utilization rate I put:

u_k_star = shock *(r_k/betta),

And now it works

Then you need to come up with a policy to shock it. You cannot simply use a shortcut.

1 Like

Okay, it makes more sense. Thanks a lot