Imperfect Information Models

Dear all,

I am dealing with a model embedded with a signal extraction problem. As seen in Patrick Hurtgen’s paper (, one should first solve the full-information model in order to get the linear policy coefficients.

Firstly, I noticed that Dynare gives us the model solution in the following state-space form:
Y(t) = Hs(t-1) + Ge(t), where “s” stands for the state variable vector and “e” the shock vector.

As explained in (, page 7), this formulation comes from the following state-space representation:
s(t) = As(t-1) + Be(t)
x(t) = F*s(t), where “x” stands for the control variable vector.

Substituting the s(t) equation in the x(t) one, we get:
s(t) = As(t-1) + Be(t)
x(t) = Cs(t-1) + De(t), where C = FA and D = FB

Stacking them we arrive at the Y(t) “Dynare” formulation.

However, in Hurtgen’s article (p.283) the state-space form is written differently as (using the notation above):
x(t) = Fs(t-1)
s(t) = A
s(t-1) + B*e(t)

I cannot seem to find out how to convert the Dynare output into the above representation. What am I missing here?

Thank you all in advance.

Hi, I wonder if there is not a typo in the last system. Shouldn’t you have:

\begin{split} x_t &= F s_t\\ s_t &= As_{t-1} + Be_t \end{split}

with s_t instead of s_{t-1} in the right hand side of the first equation? I don’t understand how we could ignore the time t innovation (which is embodied in s_t) in the RE reduced form for the jumping variables.


@stepan-a The timing is consistently shifted by one period throughout the paper and the appendix, which is weird. I will ask Patrick what is going on.
That being said, I have the replication codes for his paper and hopefully will be able to post them online soon. That should clarify the issue.

Thank you both for the responses. Looking forward to taking a look at the replication codes.

An additional question: after solving the model and having Dynare returned the solution in the Y_{t} = Hs_{t-1}+Ge_{t} format, i went on using the oo_.dr.ghx and oo_.dr.ghu matrices in order to compute \begin{split} s_{t} = As_{t-1} + Be_{t} \\ x_{t} = Cs_{t-1} + De_{t} \end{split}. So far, so good.

However, when I tried using F = CA^{-1} to get x_{t} = Fs_{t}, MATLAB warns me the matrix A is singular or badly scaled. It seems very robust to the parameter values I choose. Since I had no problems with Blanchard-Khan conditions and Dynare computed the solution normally, I wonder why am I not able to “go back” to the standard formulation (by standard I mean the one with F). Is there a particular reason for the A matrix not to be invertible, so that I can get the “Dynare” representation of the solution but not the standard one?

(In case one wants to see the codes, I attach them below. There is a .mod file which solves the model and a MATLAB file where I compute A,B,C,D.)

Test_statespace.mod (2.0 KB)
test_statespace_matlab.m (2.1 KB)

Dear professor jpfeifer, have the repication codes of Hürtgen(2014) been available to be used now?

Unfortunately, not yet.

Dear professor jpfeifer,
Many thanks for your reply. I am interested in news-noise DSGE models, so I read almost all prominent papers in this area, such as Blanchard et al(2013 AER), Chahrour & Jurado(2018 AER). But it seems that the application of noise signal still very limited in DSGE models, most relevant literature focus on TFP, and rely on Matlab. I wanna know whether it is technical feasible to add noise signal in other shocks(such as moentary policy shocks) with dynare. I am confused whether it’s very difficult.

No, that framework is in principle straightforward. The only issue is that the implementation of the Kalman filter on the consumer side requires the use of a steady state file.

I suspect that Hürtgen(2014) made a mistake. Given the same notation as tmbr to the formula and notation

x_{t}=\Pi s_{t-1}

Even though the CEQ hold under first-order perturbation method, we can only replace the first equation as x_{t}=\Pi s_{t-1|t-1} and solve s_{t-1|t-1} as a function of s_{t} and s_{t-2|t-2} through Kalman filter. We still need to solve a new mapping from s_{t-1} to s_{t} which I denote as \widehat{M}. Yet Hürtgen(2014) uses the same mapping M which is incorrect. The reason is that M is nonlinear to the Jacobi coefficient of s_{t-1} and taking expectation on s_{t-1} will change the mapping (the nonlinearity comes from QZ decomposition).
Take the market clearing condition \widehat{Y}_{t}=\widehat{C}_{t}+\widehat{I}_{t} as an example(I omit their coefficients). Under imperfect information scenario \widehat{Y}_{t} and \widehat{C}_{t} will deviate from their level under perfect information case. Then \widehat{I}_{t} will deviate and the mapping from \widehat{K}_{t-1} to \widehat{K}_{t} will change.
I think that the reason why Lorenzoni, G. (2009) or Barsky, R. B., & Sims, E. R. (2012) use a KS-type method to solve the model (conjecture the policy function of household first and update by iteration later).

I checked the replication files and the more intuitive notation would be:

x_t=\Pi s_t\\ s_{t+1}=Ms_t

where s_t denotes the state variables inherited at time t.