This repository contains the code used for the term paper of the Science Po's Numerical methods' class. Please note that this project is also my Master's thesis, and that it is still very much work in progress.
This repository is structured in the following way:
- src/ToyModel: uses value function iteration, policy function iteration, and the endogeneous grid method of Carroll (2005), to solves a simplified, two-periods version of the model. The solutions are also compared to the analytical ones, which can be derived in this case.
- src/GenModel: uses policy function iteration to solve the larger model. This part is still work in progress.
To run it,
Pkg.clone("https://github.com/HugoLhuillier/NumMethods")
🚨Warning🚨: this repository uses the Interpolations.jl
package to interpolate multi-dimensional functions, which is itself based on AxisAlgorithm.jl
. Its current version features a small bug, as mentioned here. The problem has been solved in this pull request, but has not been merged yet. For the code in this repo to run, one thus needs to implement manually the solution given in the pull request.
We consider here an heterogeneous agents model with overlapping generations. Each generation lives for several periods. In their first years of life, agents are considered as "youngs" - one can think of them as 20-40 year old individuals, who have finished their education, and have started to work. In the second stage of their life, they become "old". At this point, they all have a (unique) child, to whom they can transfer some wealth in every period. Transfers occur because olds are assumed to be altruistic towards their descendants.
In every periods, agents decide rationally how much to consume and save, while being prevented to borrow above some exogeneous limit, hence the emergence of heterogeneous agents. When old, they additionally choose the amount of wealth transferred to their child.
A key assumption of this model is the impossibility for parents to commit to future transfers. This assumption is in line with the imperfect risk sharing observed empirically within families. As such, parents cannot directly control the consumption and savings of their descendants. Instead, they can only affect their behaviors via their own decisions. This leads to strategic interactions. Moreover, a direct consequence of this assumption is that transfers cannot be negative.
As it is well known in the literature, this kind of models are two complex to be solved analytically - except in some special cases, and we rely on numerical methods to find the optimal behaviors of agents. Strategic interactions complicate further the task, and their implications are discussed in length in the paper.
TABLE 1: Data vs. heterogenous agent models, De Nardi (2016)
Percentage wealth in the top | ||||||
---|---|---|---|---|---|---|
Wealth gini |
1% | 5% | 20% | 40% | 60% | |
U.S. data, 1989 | 0.78 | 29% | 53% | 80% | 93% | 98% |
No intergenerational links | 0.67 | 7% | 27% | 69% | 90% | 98% |
Parent's bequest motive | 0.74 | 14% | 37% | 76% | 90% | 98% |
Parent's bequest motive + productivity inheritance |
0.76 | 18% | 42% | 79% | 95% | 100% |
The motivation to this model is twofold
- Since their apparition in economics, heterogeneous agents models have struggled to match the wealth distribution, as shown in Table 1. Including intergenerational transfers, in addition to bequests, can be one of the way to improve them.
- Strategic interactions are very rarely included in macroeconomic models, despite their empirical relevance. The family is one of the most salient place in which these kind of behaviors occur.