Economists are often criticized for relying on simplified
models with a representative agent and limited or no uncertainty. In reality,
households and firms are instead heterogeneous, both ex ante in terms of e.g. preferences
and beliefs, and ex post in terms of e.g. savings and portfolio composition.
Additionally, they face substantial uncertainty with respect to future
developments in e.g. income and profits, and act in environments with irreversibilities
and binding constraints.
Why do we as economists often resort to the deterministic representative agent benchmark? Because we know how to derive analytical results in this case – at least if we make certain restrictive assumptions regarding utility functions and production functions. Analytical solutions are naturally very valuable, but they should not limit the class of models we rely on. Analytical results in dynamic models with heterogeneity and uncertainty are much harder to derive.
This is where numerical dynamic programming enters the stage. In short, numerical dynamic programming is about using computers to solve general dynamic optimization problems such as those households and firms face. This consequently widely broadens the class of models we can study and use for providing policy recommendations. These recommendations can furthermore speak not to just to the average effect, but to the full distribution of expected effects. Estimating the models on micro data of households and firms these distributional effects gain credibility.
The cost is that some new tools are needed for applying numerical dynamic programming in practice. Mathematical skills are still important for setting up the model and deriving e.g. first order conditions, but programming skills are equally important for translating the math into something computers can understand and solve before the sun sets. Learning programming in MATLAB, Python, or even C++, can be tough. Programming is, however, also a generally applicable skill, which value will probably only be increasing in the future.
I, and many of my colleagues, learned numerical dynamic programming on our own. Now, however, we provide a master-level course which introduces the basic concepts and methods, and show how they can be applied in practice.
The course is Dynamic Programming - Theory, Computation, and Empirical Applications. The course require you to write an extensive term paper, which imply that you will not just learn the theory and method of numerical dynamic programming, but also gain experience with applying it in practice.
Jeg er adjunkt på Økonomisk Institut. Jeg forsker i makro spørgsmål om kriser og ulighed ved at bruge mikro-data og numeriske computermetoder. Jeg underviser i bl.a. "Mikro 1" og "Introduction to Programming and Numerical Analysis"