OLG Transition Paths: Example based on Conesa & Krueger (1999)
New example based on model of Conesa & Krueger (1999) – Social Security Reform with Heterogeneous Agents. This example illustrates how to solve general equilibrium transition paths in OLG models. The model itself evaluates the economic impacts of a variety of possible reforms to the US Social Security (pension) system. Transitions are done for both a reform that happens immediately, and a reform announced now but which will take place in the future.
This example show how the VFI Toolkit can be used to easily compute a general equilibrium transition path for OLG models in response to a path for parameters (the ‘TransitionPath_Case1_FHorz()’ command calculates the transition relating to the ‘ParamPath’ in codes). It also demonstrates tools to analyse outputs along a specific transition path, such as ‘EvalFnOnTransPath_AggVars_Case1_FHorz()’, or to calculate the value function over the resulting price path with ‘ValueFnOnTransPath_Case1_FHorz()’ and use this for welfare analysis.
For full details of the model see the original paper. Code for example.
Have also uploaded a replication of Conesa & Krueger (1999).
Main post ends here. The rest is extra background.
If you use transpathoptions.fastOLG=1
, the codes will (additionally) parallelize over age j
. This is much faster, but requires a large amount of GPU memory (GDDR memory) and so will only work on more powerful GPUs (within a few years this will no longer be relevant). In practice it is often a good idea to use fastOLG=1 to solve a version with smaller asset grids, and then use this as the initial guess for larger grids with fastOLG=0.
The transition path is solved for using ‘shooting algorithms’. Essentially, you guess (a path for) prices, solve the model, generate new prices, and then iterate on this until you get convergence in the prices. The codes explain how this is done in terms of the general equilibrium conditions, and allows for different update weights for the different prices. This is the easiest approach I have been able to come up with.
The model of Conesa & Krueger (1999) actually allows for a closed form expression for the labor supply in terms of the other state variables (including next period assets), and this could be implemented by placing that expression into the return function (and would be faster). This is not done here so as to make the codes easier to modify for other purposes.
Disclaimer: If you are willing to assume that models are linear in the aggregate you can use these transition paths as a way to solve and simulate models with aggregate shocks, see Boppart, Krusell & Mitman (2018). There are ways to further exploit this linearity assumption to massively speed up solutions, see Auclert, Bardóczy, Rognlie & Straub (2021), but since VFI Toolkit is about global non-linear solution methods there is no plan to implement these approaches. The BKM method in particular is very easy once you have solved the transition path and so you can implement it easily by building on the toolkit results.