I’m working with a standard NK DSGE model where agents observe a noisy signal of future productivity. Technology is an AR(1) process and therefore their prior belief of tomorrow’s technology is just the autoregressive component since the expected innovation is zero:

a = rho_a*a(-1) + eps_a;

However, after observing the signal, their belief of the innovation is positive. I construct a variable in Dynare as follows:

exp_a_post = rho_a*a(-1) + eps_a_post;

where eps_a_post is the belief of the innovation after using the Kalman filter.

The objects a(+1) and exp_a_post are conceptually equivalent; one is the expected value of technology tomorrow given no signal, and one is the expected value of technology tomorrow given the signal.

The problem I’m having is constructing the equivalent of a(+2). Dynare is smart enough to know that:

E_t[a_t+2] = (rho_a^2) a_t

and this is exactly what you get if you use a(+2) or shock a and look at the IRF. With the beliefs generated by the signal, denoted by E_t^S, this should be:

E_t[a_t+2] = (rho_a^2) a_t + rho_a * eps_a_post + eps_a_post(+1)

(Apologies for the somewhat sloppy notation.) Here, eps_a_post(+1) is the belief of epsilon_t+2 given the signal; this is zero, since the innovations are iid zero mean. Then:

E_t[a_t+2] = (rho_a^2) a_t + rho_a * eps_a_post

However, this is not what exp_a_post(+1) is, and thus a(+2) and exp_a_post(+1) are not equivalent. I somehow need to define exp_a_post such that the leads are defined recursively using the initial value from eps_a_post. I can’t figure out how to do this and I’ve been trying all kinds of creative ideas. The worst-case solution is that I’ll generate the beliefs outside of the model (since they are exogenous, anyway) and feed them back in via simult_, but ideally there’s a way to do this inside Dynare.

Thanks for any help!