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.