Expected vs. Unexpected Changes in a Non-Stochastic Model

Dear Dynare users,

I would really appreciate if some Dynare user could give me hand on the following. Imagine
i) a standard, non-stochastic Ramsey-Cass-Koopmans model.
ii) at t = 0 the stock of capital to labor ratio is different from the steady state for some intial value of the TFP
iii) at t = T (probably before the economy has converged to the steady state) there is a change (say increase) in the TFP

The question(s)
i) can Dynare deal with this issue in the two cases
i.1) expected change of the TFP, and
i.2) unexpected change of the TFP?
ii) might I have a hint about how to do it?

I have made some attempts, but (to be honest) I do not know what exactly I am doing. Script attached.

Thanks in advance,
Cruz
RCK_NL_Unexpected_Change.mod (2.98 KB)

Doing perfect foresight transition experiments can be easily done in Dynare. Therefore, i.1) is straightforward.

ii.2) is tricky, because it deviates from the perfect foresight case. You might be able to do it by first solving for the solution from t=0 to T-1 under perfect foresight and then using the values at T-1 as starting values for another perfect foresight simulation where now the shock at time T comes as a surprise again.

Dear Johannes,

Thanks a lot for your, as always, immediate reply. Perfectly understood. Actually, that was my guess.

Warms regards,
Cruz

Dear expert Dynare users,

So sorry to bother you with such a basic question, but I have the impression that I must be doing something wrong. Dynare results are telling me something, but (my) common sense is suggesting me something different.

Imagine: standard, deterministic RCK model. The economy is on its balanced growth path since t = 0. At t = 10 a sudden (unexpected) increase in TFP takes place. My guess is that at t = 10 there will be a jump in the optimal consumption (control variable) path thereby placing the economy on the stable arm of the saddle-path dynamics. The stock of capital (state variable), however, will not jump. Later on, the economy will converge to the new steady state. However, I obtain a sort of “over-reaction” of consumption: it jumps as of t = 10; next period (i.e. at t = 11) it falls, and from then on consumption smoothly increases. I find this “over-reaction” of consumption a kind of weird. Am I wrong?

Any feed-back will be deeply appreciated.

Thanks in advance,
jepecolc
RCK_Ex.mod (3.92 KB)

Sorry, but I cannot replicate the issue. I get a one-time jump in capital and consumption. Did you try the unstable version?

So, so sorry, Johannes. After so many trials and errors, I just uploaded the wrong script. I beg you please to accept my apologies. This time I made sure that I did upload the file that I wanted to (RCK_Ex_1.mod). By the way, the version of Dynare that I am working with is 4.4.3

Regards,
jepecolc.
RCK_Ex_1.mod (3.59 KB)

There seems to be something wrong with your plotting. Your mod-file is equivalent to

[code]display(‘Inital Steady State’);
A = 1;
beta = 0.95;
delta = 0.02;
alpha = 0.25;
n = 0.0;
kss_0 = ((alphaA)/((1/beta) - (1 - delta)))^(1/(1 - alpha))
css_0 = A
(kss_0^(alpha)) - kss_0*(n + delta)

% -------------------------------------------------------
% DECLARE ENDOGENOUS VARIABLES
% WITHOUT TIME, AS IN THE STEADY STATE
% -------------------------------------------------------
% Number of variables: 5
var k, c ;

% -------------------------------------------------------
% LIST OF PARAMETERS
% -------------------------------------------------------
parameters beta, sigma, delta, alpha, n, A;
beta = 0.95;
sigma = 1.5;
delta = 0.02;
alpha = 0.25;
n = 0.0;
A = 1.5;

% Final Steady State
kss = ((alphaA)/((1/beta) - (1 - delta)))^(1/(1 - alpha));
css = A
(kss^(alpha)) - kss*(n + delta);

% -------------------------------------------------------
% MODEL DESCRIPTION
% -------------------------------------------------------
model;

% i) Resource constraint
	A*(k(-1)^(alpha)) = k*(1 + n) - (1 - delta)*k(-1) + c;

% ii) Euler equation
    # aux = 1 - delta + alpha*A*(k^(alpha - 1));
	# u_1 = 1/c^(sigma);
	# u_2 = 1/c(+1)^(sigma);
	u_1 = beta*u_2*aux;

end;

% -------------------------------------------------------
% COMPUTING THE STEADY STATE
% -------------------------------------------------------

initval;
k = kss;
c = css;
end;
steady (solve_algo = 0);

check;

% -------------------------------------------------------
% COMPUTING THE DYNAMICS
% -------------------------------------------------------

initval; 
	Initial Steady state
	k = ((alpha*1)/((1/beta) - (1 - delta)))^(1/(1 - alpha));
end;

simul (stack_solve_algo=0, periods = 90);
rplot c k;[/code]
which delivers nice graphs for c and k.

Dear jpfeifer,

Sorry to bother you again with such a trivial issue. I understand that much more relevant questions are at hand, but I must be missing something very basic.

I ran your script, and I found the same problem. Why is it that the first value for the optimal consumption path in the very first period of the simulation horizon equals the “new” steady state value (c = 2.414) to which the economy will eventually converge, but to which it has not converged yet? The economy had just left the old steady state (where c = 1.405). In other words: is the old steady state stock of capital compatible with the new steady state consumption in the same period? And in the period right afterwards, it turns out that optimal consumption abruptly drops to a lower value (c = 1.905), but then it starts smoothly increasing until the new steady state value (the aforementioned c = 2.414). If one has a look at the plot, this is exactly what the graph shows.

In my modest opinion, from a strictly economic point of view, I do not think that this makes sense. Shouldn’t I (I just wonder) simply drop the first value of the consumption series (c = 2.414) and just start the consumption series at c = 1.905? I wonder if the ultimate reason for this to happen is simply the timing convention of Dynare by which the current stock of capital was decided yesterday [so that it is computed as k(-1)], while current consumption is decided today [so that it is computed as c].

Deeply thankful,
Cruz
RCK_J_13.mod (2.19 KB)

The answer is in the updated manual at github.com/DynareTeam/dynare/pu … 906ece4e5b. It has to do with the way the initial and terminal conditions are set and stored.

Thanks a lot! I managed to make it work.
Regards,
C