Introduction

Advanced Macro: Numerical Methods (MIE37)

Pablo Winant

2024-02-15

Communication for this Course

  • Github repository for the course: https://github.com/albop/mie37
  • Join on Zulip : we’ll communicate in the mie37 room
    • you’re welcome to ask questions and answer other’s questions (nicely)
    • outside of the course hours, I’ll answer when I can
  • Formal or infrequent communication: pwinant@escp.eu with subject starting by [mie37]

Assignments and Final Exam

  • Hands-on tutorial started in class must be (reasonably) completed by Wednesday night.
  • There will be two special assignments with 14 days to complete each of them.
  • Groupwork is OK.
  • Final Exam will take place in the latest session.
    • It will consists of a few simple programming questions and a small model to solve yourself.
  • Final Grade will weight everything.

Other sources of information

  • Course is mostly self-contained for its Math and Econ aspects.
  • Books:
    • Economic Dynamics: Theory and Computation by John Stahurski
    • Computational Economics by Miranda & Fackler
    • Recursive macreconomic theory by Lars Ljungqvist & Tom Sargent
  • Online:
  • … and all the Julia material

About me

  • A computational economist
  • Formerly Worked in institutions (IMF, BOE)
  • Now at ESCP and CREST/Polytechnique
  • Research on models about:
    • Inequality (heterogeneity)
    • International Finance
    • Monetary Policy
    • Artificial Intelligence
  • Involved in several opensource projects (Dolo, QuantEcon, ARK)

Content of the course

  • Computational Economics is made of:
    • Applied Math (theory)
    • Programming (techniques)
    • Economic Modeling (expertise)
  • We’ll alternate between the three topics
    • with a stronger than usual emphasis on Programming skills

Math

  • We won’t be using very advanced math
    • linear algebra, Banach spaces, a bit of probabilities
    • working knowledge is fine
    • (almost) no proofs
  • but in a context where advanced math is an option…
    • functional spaces…
  • applied math: essentially describes the algorithms and their validity/convergence properties

Models

  • See a variety of models:
    • Static Market Determination (Computational General Equilibrium: CGE)
    • Dynamic Optimization (continous or discrete)
    • Linear Rational Expectations Models
    • Dynamic Stochastic General Equilibrium models (DSGE)
    • Heterogenous Agents Models
  • In discrete time
    • to avoid discretization schemes and stochastic calculus
  • Usually a model is specified by equations and some parameter values:
    • no closed form, most of the time
    • goal is to “solve” the model to study properties of its solutions

Models (2)

  • random examples of questions we can analyse numerically:
    • which sectors should receive more help during the coronavirus (CGE)?
    • when is it time to replace a machine? how much water should be extracted? how much should be stored? (dynamic programming)
    • what kind of shock drives the business cycles? (DSGE models)
    • is a Central Bank able to commit to intervene in the markets? (time inconsistency)

Why economics is not Physics (1)

  • Easy!: you just swap particles for people, and simulate (or solve an IVP problem)
  • NO: Not only local interactions: economic agents interact in many ways, including through markets
    • All agents/prices must be solved at the same time

Why economics is not Physics (2)

FEM

  • Easy!: it’s a differential equation with boundary values (BVP)
  • NO: agents think, they are forward looking and respond to other agents’ (possibly future) decisions

What makes the life of computational economists hard:

  • Agents are rationnal, they should consider all possible outcomes and all decisions (and those of others…) in the future to make a decision today bm
  • Very complex problem: curse of dimensionality when more than a few variables
  • Wait, that’s crazy! People are not that smart, let’s make simplifying assumptions about their behaviour
    • agent based approach
    • methodological issues: too many possible predictions, too many parameters

Why should you learn to program ?

  • Econometricians, modellers, data scientists, spend a lot of time writing code
    • and do it inefficiently…
  • Programming efficiently requires awareness of
    • certain basic concepts: (types, control flow, functions, objects)
    • some tools (programming language, code versioning, command line)
    • which are never taught…
  • And yet they are very easy to learn
    • anyone can become an expert !

Now is the right time !

  • A lot of demand everywhere for skilled programmers.
  • Many faculties are introducing formal programming courses (for economists)
  • New applications are even more code-intensive than before:
    • data science
    • machine learning
    • modeling

Do it in the open !

Setup

  • Plan A: use the mybinder links from the courses repository.
  • Plan B: use your own laptop. You will need:
    • Julia 1.10.x (install using JuliaUp)
    • visual studio code
    • julia extension to VSCode
    • git