I’m trying to produce a deterministic path using the forecast command together with the histval block.
When I compute the forecast (iteration on the state-space model) directly I get different results for many variables than those produced by “forecast”.
To be sure I use the same iteration to produce IRFs and the results are identical to the IRFs produced by Dynare. I take from that that the representation of the state space (ie A) is correct.
Absent shocks, is it correct that Dynare generates a forecast starting from the initial condition Y_0 by simply iterating the following?
where A is the transition matrix that can generate the correct IRFs mentioned above.
Note that if the variable that is “perturbed” in vector Y_0 is exogenous, the path of that variable is correct, but not that of the other variables.
Note also that if I have all innovations set to zero (ie M_.Sigma_e=zero matrix) and have that
TFP(0)=0; % steady state value of TFP is zero
Then the forecast produces a path for endogenous variables but a zero for TFP. I run steady_ before stoch_simul and forecast.
If I omit the histval block, then no path is produced (flat lines).
Yes, Dynare iterates forward on the state space representation. How did you set the initial condition? Every state not initialized will be set to 0. An example is
var y, c, k, a, h, b;
varexo e, u;
parameters beta, rho, alpha, delta, theta, psi, tau;
alpha = 0.36;
rho = 0.95;
tau = 0.025;
beta = 0.99;
delta = 0.025;
psi = 0;
theta = 2.95;
phi = 0.1;
k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1)))
y = exp(a)*(k(-1)^alpha)*(h^(1-alpha));
k = exp(b)*(y-c)+(1-delta)*k(-1);
a = rho*a(-1)+tau*b(-1) + e;
b = tau*a(-1)+rho*b(-1) + u;
y = 1.08068253095672;
c = 0.80359242014163;
h = 0.29175631001732;
k = 11.08360443260358;
a = 0;
b = 0;
e = 0;
u = 0;
var e; stderr 0.009;
var u; stderr 0.009;
var e, u = phi*0.009*0.009;
k(0) = 11.08360443260358;
I run steady before histval. Is that enough to set the states at their steady state value?
No, that is not sufficient, because you override this by
Sorry to be slow. So do I have to list all states in histval even if they are not different than the steady state?
Indeed. Alternatively, forget about the
histval-block and directly fill the contents of
M_.endo_histval, starting from the last steady state in
Thank. That’s an excellent idea