The Simplest DSGE Model

Macroeconomics (M8674), March 2025

Vivaldo Mendes, ISCTE
vivaldo.mendes@iscte-iul.pt

1. Introduction

What is a DSGE macroeconomic model?


  • D for dynamics: the economy evolves over time; economic decisions are made over time
  • S for stochastic: the economy is exposed to external shocks that can not be anticipated or forecasted
  • G for general: considers all markets that are important for the functioning of a modern economy
  • E for equilibrium: private agents and public decision-making institutions try to do the best they can with all available information (optimal decision making)

How relevant are DSGE models?


As Stanley Fischer put it here:

"Let me turn to [...] macroeconomic models and their role in assisting the FOMC's decisionmaking. The Board staff maintains several models; I will focus on the FRB/US model, the best known and most used of the models the Board staff has at its disposal. FRB/US is an estimated, large-scale, general-equilibrium, New Keynesian model."

in: "I'd rather have Bob Solow than an econometric model, but ...", Speech by Stanley Fischer, Vice Chair of the Board of Governors of the Federal Reserve System, at the Warwick Economics Summit, 11 February 2017.

The simplest possible model


  • The model is linear
  • It has three types of variables:
    • a forward-looking variable/block:
    • a predetermined variable/block:
    • a contemporaneous (or static) variable/block:
  • It is an uncoupled model: each variable/block can be solved separately from all other variables/blocks.
    • This property means that we can solve the model with pencil and paper.

The three equations




  • is a backward-looking (or pre-determined) variable
  • is a random shock
  • is a forward-looking variable
  • is a contemporaneous (or static) variable
  • are parameters

2. Solution: backward-looking block

By pencil-and-paper

Solution to the backward looking block


  • To avoid explosive behavior on the solution obtained in the previous slide:

  • ... we have to impose the condition: .

  • If , the solution to this block at the th iteration (when ) is:

  • ... where is the deterministic steady state of

A numerical example


  • Consider the following parameter values:

  • In the previous slide, we got the solution:

  • So, with those parameter values, eq. (1') can be rewritten as:

A numerical example (cont.)


  • In eq. (2) in the previous slide, we got:

  • From eq. (2'), we can easily conclude:

    • The deterministic steady state is : 0
    • The current value of depends only on the shocks it suffered in the past.
  • Consider that the process is on its deterministic steady-state , and suffers a positive shock of at period .

  • What happens to the value of over time, if there are no more shocks?

A simple solution


  • Using the original equation , and :

  • But , as it was assumed that . So, we have:

  • As there are no more shocks in this exercise, for period we obtain:

  • Doing the same for and , we get:

  • So, the solution will be:

A more efficient solution


  • The method used above is not very efficient. Suppose the shock occurred long ago, for example, , and we wanted to compute the value of .

  • According to the previous method, we had to perform 50 operations to get the value of .

  • There is a better way to obtain that value: use directly eq. (2'):

  • So, what is the value of , given that a shock occurred 3 periods ago ?

A more efficient solution (cont.)

  • By the same way, what is the value of , given that a shock occurred 2 periods ago ?

  • Repeating the same exercise, we can collect the other results.

  • For example, what is the value of if the shock occurs in the current period?

  • So, the solution will be the same:

Deterministic part vs random part

  • As expected, the deterministic part of remains constant:

  • The change occurs in the random part of this process :

3. Solution: forward-looking block

By pencil-and-paper

Solution avoiding explosive behavior


  • To avoid explosive behavior on the solution

  • ... we have to impose the condition: .

  • We get the following solution to this block at the -th iteration, as :

  • The solution to eq. (3), can be written as:

Unconditional vs conditional expectations

  • The solution to eq.(4) depends on the type of information we may have about the observations of over time:
    • What is the value of in eq. (4)?
  • It depends on whether we compute the unconditional mean of , or its conditional mean.
    • The unconditional mean is just the deterministic value of its steady state: .
    • The conditional mean is computed on the basis that we know the value of .
  • Next we show how to compute these two expected values.

solution with unconditional expectations


  • The expected-unconditional value of is the deterministic steady-state:

  • Therefore, the solution to is obtained by inserting eq. (5) into (4):

solution with unconditional expectations (cont.)


  • In the previous slide we obtained that the solution to is given by:

  • Considering the information we have about the parameters:

  • So, we get:

  • Therefore, with unconditional expectations, the value of will be:

solution with conditional expectations


  • As the expected-conditional value of is given by:

  • And as we have the information that

  • Then,

  • Therefore, the solution to is obtained by inserting eq. (7a) into (4):

solution with conditional expectations (cont.)


  • From eq.(7b) in the previous slide, we got:

  • This is a geometric sum, with a solution:

  • Therefore, it is easy yo see that:

  • If moves away from its steady-state , will change because:

solution with conditional expectations (cont.)


  • As from a previous slide we know that suffered a shock in period :

  • It is very simple to calculate the values 0f by using eq. (9):

  • So, moved away from its steady state due to the impact that exerts upon .

  • And moved away from its steady state due to the shock it suffered in period .

4. Solution: static block

By pencil-and-paper

Solution: no iterations needed


  • The static block is given by the equation:

  • From the previous slide, we know that:

  • From eq. (3), we know that: . So:

  • Once we know the values of and , it is immediate to calculate .

  • Assuming that and , we get:

An image of our simple model


5. The Blanchard-Kahn conditions



Blanchard, O. and Kahn, C. M. (1980). The solution of linear difference models under rational expectations. Econometrica, 48(5), 1305-1311.

More complicated models


  • All models in modern macroeconomics can not be solved by pencil and paper.
    • They may be non-linear.
    • Their blocks be coupled in contrast to the case above.
  • Blanchard-Kahn (1980) developed a technique that allows us to solve any linear model, no matter how intricate its blocks might be.
  • This technique is based on the Jordan decomposition of square matrices.
  • In this class, we do not expect students to replicate the proof; but students should understand its logic.
  • It is crucial to understand what the Blanchard-Kahn stability conditions mean.

The strategy of solving a DSGE model


  • is a predetermined variable (or set of variables)
  • is a random shock (or a sequence of random shocks)
  • is a forward-looking variable (or a set of variables)
  • and solve the predetermined variable (or block)
  • solves the forward-looking variable (or block)

The model in state-space representation


  • Write the model in state space form

  • are square matrices representing the parametric structure of the model

  • are vectors with the endogenous variables, and is a vector of exogenous random shocks. is the usual conditional expectations operator. is a vector with constants, and for simplicity, we drop it from the model.

  • Multiplying both sides of (9) by , leads to:

The Jordan Decomposition

  • Suppose we have a square matrix

  • The Jordan decomposition of is given by:

  • contains as columns the eigenvectors of

  • is a diagonal matrix containing the eigenvalues of in the main diagonal.

  • is the inverse of

Apply the Jordan Decomposition


  • Our system was given by (10):

  • Apply the decomposition to (10):

  • Multiply both sides by :

Matrices partition


  • Let us assume that there are no shocks affecting the forward-looking block:

  • Next, we apply a partition to the matrices: , , :

  • Our transformed model looks much easier now:

The solution to the model


  • Using these partitions, the solution will be given by (see detailed demonstration in Appendix A):

Partition of matrices , ,


  • When solving these models, the most demanding task is to apply the correct partition to these three matrices.

  • Suppose a model with 1 backward-looking variable, one static, and the third is a forward-looking variable (as the simple model above).

  • The partitions should be as follows:

Partition of matrices , ,

2 forward-looking, 2 non-forward-looking variables


2x2 2x2

The Blanchard-Kahn stability conditions


  • Suppose we have a model with 5 variables:
    • 2 forward-looking
    • 2 backward-looking (or predetermined)
    • 1 contemporaneous (static)
  • To secure a unique and stable solution, the matrix should provide:
    • 2 eigenvalues greater than 1, , (forward-looking block is stable)
    • 2 eigenvalues less than 1, (backward-looking block is stable)
    • 1 eigenvalue is 0, , (the static variable has no dynamics of its own)
  • If these conditions are violated, one of the blocks shows explosive behavior, which violates what we observe in reality.

6. Back to the "simplest model"

Solving it with the Blanchard-Kahn method ... and a computer

Prepare the model for matrix form


  • The original model:

  • To write the model in matrix form, put all variables expressed at on the system's left side, those at on the right side, and constants at the end.

  • So, the model can be written as:

The model in matrix form

  • left hand-side: endogenous variables at

  • right hand-side: endogenous variables at , shocks , constants

  • Detailed specification of the model:

The model in matrix form (cont.)

  • Detailed specification of the model:

  • The model in state space representation:

The state space representation passed into Julia



A = zeros(3,3) 
B = zeros(3,3)
C = zeros(3,3)

A[1,1] = 1.0
A[2,1] =  -ϕ
A[2,2] = 1.0
A[2,3] =  -μ
A[3,3] =   β

B[1,1] =   ρ
B[3,1] =  -θ
B[3,3] = 1.0

C[1,1] = 1.0

D =[φ ; 0.0 ; -α]

Using the notebook "Simple_Model.jl"


  • This nootebook follows step-by-step the BK approach:
    • Write the model in state-space form.
    • Check the BK stability conditions
    • Perform the matrices' partitions
    • Simulate the model's response to an isolated shock upon with a magnitude of .
  • And we also implement:
    • A simulation of the model's response to systematic white-noise shocks on .
    • A computation of the: (i) autocorrelation function for each variable in this model, (ii) cross-correlation function, (iii) standard deviation.

Appendix A

Proof of the The Blanchard-Kahn method (not required)

The model in state-space representation


  • Write the model in state space form:

  • are square matrices representing the parametric structure of the model

  • are vectors with the endogenous variables, and is a vector of exogenous random shocks. is the usual conditional expectations operator. is a vector with constants, and for simplicity, we drop it from the model.

  • Multiplying both sides of (4) by , leads to:

Apply the Jordan Decomposition


  • The Jordan decomposition is given by:

  • contains as columns the eigenvectors of is a diagonal matrix containing the eigenvalues of in the main diagonal.

  • Apply the decomposition to (A2):

  • Multiply both sides by :

Matrices partition


  • Let us assume that there are no shocks affecting the forward-looking block:

  • Next, we apply a partition to the matrices: , , :

  • Our transformed model looks much easier now:

System Written as two Decoupled Blocks



Transformed model written as a set of decoupled equations:

We can now apply our well known strategy. Iterate to:

  • Solve the predetermined transformed block and get the equilibrium levels of the predetermined (backward-looking) variables:

  • Solve the forward-looking transformed block and get the equilibrium values of the forward-looking variables:

Solving the forward-looking block


  • Iterating forward this block, and as the shocks to this block are , we get:

  • If we assume

  • Then, the only stable solution will be

  • Now, from the partition of and , we know that

  • From (A3)=(A4), the forward-looking block only depends on predetermined one:

Solving the predetermined block


  • Iterating forward this block, we get

  • If we assume that:

  • The process is stable, and from the partition of we know that:

  • Now, inserting eq. (A5) into (A6), we can obtain:

Solving the the predetermined block (cont.)


  • As from eq. (A7) we have

  • Then, for we get:

  • But, as from eq. (Predetermined block) we have:

  • By mere substitution of (A8) and (A9) into (A10), we derive our final result:

Summarizing



  1. Write down your model in state space form
  2. Apply the Jordan decomposition
  3. Decouple the system into two blocks
  4. Make sure the eigenvalues satisfy the Blanchard-Kahn conditions
  5. End up with the two fundamental results:

Readings

  • This material is the application of the Blanchard-Kahn method to solve a DSGE model.
  • Students are not required to replicate the demonstration of this method; however, they are expected to understand the logic behind this method and be able to simulate a model by using a computer and this method.
  • So no required reading is really necessary. However, if one wants to have a go and see the first paper that explicitly shows how a DSGE model, without a closed form solution, can be solved and simulated, go here for:

Blanchard, O. and Kahn, C. M. (1980). The solution of linear difference models under rational expectations. Econometrica, 48(5), 1305-1311.