Foundations of Computational Economics

All Jupyter Notebooks for the lectures and practical lab sessions are available through GitHub, and can be launched on Binder.

Open course repository Launch course notebooks on Binder All course videos on one page

#   Segment summary Video+Notebook
1 Course introduction. Housekeeping What is computational economics. Course structure and house keeping. Choice of programming language.
2 Local workspace. Jupyter notebooks. Git and GitHub Introduction of Git version control system. Local installation of Python, Anaconda, Jupyter Notebooks, Git and Git GUI. GitHub and GitHub Classroom.
3 Representing numbers in a computer Binary and hexadecimal numbers. Floating point numbers. Numerical stability and potential issues. Numerical noise.
4 Python essentials: data types Variables and memory, binary operations, logical expressions, composite variables types.
5 Python essentials: control flow and functions Flow control, user defined functions. Sieve of Eratosthenes example.
6 Two simple examples Indexing problem and its inverse, base-N number conversion
7 Python essentials: object-oriented programming Classes and objects. Attributes, properties. Encapsulation, inheritance and polymorphism.
8 Bundle goods market Object oriented programming in modeling consumer choice model.
9 Algorithms and complexity Timing of Python code. Runtime order of growth. Complexity classes. P vs NP.
10 Two simple algorithms: parity and max Parity of a number, bitwise operations in Python. Finding maximum in an array.
11 Binary search algorithm Binary search. Other divide and conquer algorithms. Recursion.
12 Enumeration of discrete compositions Combinatorial enumeration. Python generators.
13 Two very important algorithms for solving equations Bisections and Newton-Raphson methods. Solving equations of one variable. Accuracy of solution. Rates of convergence.
14 Vectors and matrixes (Numpy) NumPy arrays data types and differences to native Python, operations on the arrays, solving linear systems of equations.
15 Introduction to Data Manipulation in Python (Pandas) Introduction into DataFrames, grouping and data merging.
16 Visualization of data and solutions Principles and functions of graphics. Examples of visualization of economic models.
17 Linear regression using Pandas and Numpy Using Numpy and Pandas to estimate simple regression.
18 Linear programming and optimal transport models Linear programming and optimal transport problems.
19 Measuring the volume of illegal trade with linear programming Application of the optional transport problem.
20 Finite Markov chains Stochastic matrix, irreducibility and aperiodicity, stationary distribution.
21 Computing a stationary distribution of a Markov chain Successive approximations and direct linear solver.
22 Successive approximations (fixed point iterations) Scalar and multivariate solver. Equilibrium in market of platforms.
23 More on Newton-Raphson method Failures of Newton method, domain of attraction. Multivariate Newton for optimization problems.
24 Optimization through discretization (grid search) Grid search method and its use cases.
25 Newton-Raphson method with bounds Robust implementation of Newton method for problems with strict bounds.
26 Polyline class for piecewise linear curve approximation Precomputation of complex curves in the equilibrium model (coding from scratch).
27 Dynamic programming in discrete world Backwards induction. Tiling problem. Deal or no deal game. Bellman optimality principle. Inventory dynamics model.
28 Rust model of bus engine replacement Model background and formulation. Mileage process. Optimal replacement choice with and without EV taste shocks.
29 Coding up the Rust model of bus engine replacement Implementation of Rust model in infinite horizon with value function iterations solver
30 Cake eating in discrete world Cake eating problem setup. Solution “on the grid”.
31 Function approximation in Python How to approximate functions which are only defined on grid of points. Spline and polynomial interpolation.
32 Cake eating model with discretized choice Using function interpolation to solve cake eating problem with discretized choice.
33 Random numbers in Python, Monte Carlo Random number generation in Python. Inverse transform sampling. Monte Carlo simulations.
34 Numerical integration, quadrature Gaussian quadrature. Monte Carlo integration.
35 Stochastic consumption-savings model with discretized choice Deaton model of consumption and savings with random returns. Using quadrature to compute the expectation in the Bellman equation.
36 Simulating data from the model Random variables induced by the model. Coin flipping example. Simulating consumption and wealth paths from the consumption-savings model.
37 Dynamic programming theory and overview of solution methods Overview of dynamic programming problem formulations and solution methods. Theoretical foundations of dynamic programming in infinite horizon. Contraction mappings and fixed points.
38 Dynamic programming with continuous choice Optimization in Python. Consumption-savings model with continuous choice.
39 Euler equation and time iterations First order conditions and Euler equation. Time iterations solution method. Euler residuals for measuring the accuracy of solution for consumption-savings model.
40 Consumption-savings model with continuous choice Adding continuous version of Bellman operator and time iterations solver to the consumption-savings model. Measuring accuracy of different solutions.
41 Endogenous gridpoint method (EGM) Fastest and most accurate solution methods for consumption-savings model. Class of models solvable by EGM. Generalizations of EGM method.
42 Solving consumption-savings model with EGM Implementation of endogenous gridpoint method for solving Deaton’s consumption-savings model.
43 Solving DP problems with policy iterations Policy iterations solution method for infinite horizon dynamic models. Solving stochastic inventory management problem with policy iterations.
44 Newton-Kantorovich method Solving Bellman equation using Newton-Kantorovich iterations. Convergence rates. Polyalgorithm.
45 Method of simulated moments for model estimation (MSM) Using data to inform numerical economic models. Calibration and estimation of economic models. Introduction to method of simulated moments (MSM).
46 Nested fixed point maximum likelihood estimator (NFXP) Nested loop MLE estimator. Combining Newton-Kantorovich iterations with gradient based likelihood maximization. Structural estimation of Rust bus engine replacement model.
47 Example exam questions Examples of questions and answers in the exam.