Transversality Condition - SMO

Hi, I am trying to solve a standard Small Open economy model with endowment under perfect foresight.

The chracterization of the equilibrium is given by,

c_t^{-\sigma} = c_{t+1}^{-\sigma} \beta (1+r)^{-1}
c_t + b_t(1+r)^{-1} = b_{t-1} + y_t

plus 1 initial condition on b_{-1} and a transversality condition that prevents overborrowing.

I am trying to analyse the response after an income shock (jump of y_0). Of course I have analytical solution to this simple model and I know the transition to the new steady state is inmediate to a higher consumption level.

The issue is that I cannot specify the transversality condition in Dynare and the solution I obtain is explosive savings (since nothing prevent it more than transversality).

How can I specify a condition that prevents debt to explote?

Thanks!

Here is the mod:

%----------------------------------------------------------------
% 1. Defining variables
%----------------------------------------------------------------

var c b;
varexo y;

parameters sigma beta r;

%----------------------------------------------------------------
% 2. Calibration
%----------------------------------------------------------------

set_param_value('sigma',p.sigma);
set_param_value('beta',p.beta);
set_param_value('r',p.r);

%----------------------------------------------------------------
% 3. Model
%----------------------------------------------------------------

model;

c^(-sigma)  = c(+1)^(-sigma)*beta*(1+r);

c + b/(1+r) = y + b(-1);

end;



initval;
y=1;
c=2-0.96;
b=.96;
end;


shocks;
var y;
periods 1;
values 2;
end;

simul(periods=10);

Hi Fgc,

You could consider introducing a simple convex portfolio adjustment cost function :slight_smile:.

I understand why this might help, but still the problem is well defined as it is, there should be no need to include such cost.

Thanks!

You are using perfect foresight simulations. There, you are solving a nonlinear equation system in N*T unknowns using N*T equations. The issue are the initial and terminal conditions you you need to make the system determinate if there are leads and lags in your model. There is nothing here that restricts the initial value of b(-1) in your model and the terminal value of c(+1). The former you provided with initval. Your problem comes from the latter. You did not send the terminal value for consumption. So Dynare takes it to be the initial steady state. But because your model has a unit root, that value will not work. You need to specify a correct terminal condition.

Thanks for the reply! I understand the point. However, providing a terminar condition for “c” is exactly solving the model. In this easy example I can do it by hand, but for more complex models I do not have this posivility.

What I need is to set a bound to debt (a large “K”) and by setting “T” sufficiently large this will rule out overborrowing, and the system will correctly choose the other equilibrium of constant but different consumption than initial. Is it possible to do something like this?

Thanks again!

I think you are mixing things up. You are currently doing perfect foresight simulations with a finite time horizon. In that setup, the transversality condition still boils down to a specific terminal condition, usually of the form that a Lagrange multiplier times the value of savings needs to be 0. But you are arguing in an infinite horizon context where ruling out explosions is sufficient.

Thank you very much. I apologize if I was not clear, in the model I assume infinite time horizon.

However, is it possible to specify in Dynare that time is actually infinite, or because the solver assumes a finite time T it will always choose the explosive solution?

I was thinking that as an alternative I can linearize the model and perform stochastic first order simulations which due to certainty equivalence will coincide with the perfect foresight solution… or I might be totally wrong.

Thank you berry much again!

In that case, stochastic first order solutions seem to be the best choice.

Thanks! It worked perfectly when I specify only one shock at time 1. However since I am trying to specify a sequence of shocks under perfect foresight, stochastic simulation did not deliver the perfect foresight solution (I tried to write the shocks using varexo_det and as a simulation of stochastic shocks)

Please describe what exactly you are trying to do.

Sorry jpfeifer, I will go again. I am trying to solve an infinite time, Small Open economy model with endowment under perfect foresight. The idea is to fit a sequence of income and study the transition from the initial value to the new steady state.

The equilibrium of the economy is characterized by,
c_t^{-\sigma} = c_{t+1}^{-\sigma} \beta (1+r)^{-1}
c_t + b_t (1+r)^{-1} = b_{t-1} + y_t
b_{-1} given
lim_{t \rightarrow \infty} \beta^t c_t^{-\sigma} b_t =0

when I fit a sequence of shocks doing (the rest of the code is in the first post):

initval;
y=1;
c=1;
b=0;
end;


shocks;
var y;
periods 1 2 3;
values 2 3 4;
end;

simul(periods=10);

The solution I obtained is increasing debt with no change in consumption. Since the model is very simple, I can solve it analytically and understand this is wrong, the right solution is a jump to a new steady state of consumption with b \neq 0. The problem is the Dynare is solving it as a finite time economy where I did not specify a terminal condition.

The problem with specifying a terminal condition is that is essentially solving the model and I am trying to learn if Dynare is useful to solve this kind of problem under more complicated frameworks.

An alternative I found useful is to linearize and use stochastic simulations and, resting on certainty equivalence, study deviations from SS. However, I found it useful only when I want to spedify a one time shock, not a sequence.

Thanks a lot again.

No, my question was what the problem was with your stochastic simulations. Why did the shock sequence not work? What you are specifying is just a series of news shocks.