Using Python in the Dynamic Microsimulation Model of Italian Economy (Research Area / Banca d'Italia)
DYNAMITE (Dynamic Microsimulation Model of the Italian Economy) comes from the cross-section microsimulation model built for Banca d'Italia by Albert Ando and Sergio Nicoletti (1999) for the Italian economics system, with the collaboration of Luigi Cannari.
The model was built to simulate interactions in the behaviour of "decision makers" (individuals and families) in a wider system. In detail, it simulates the development of italian population and the economic behaviour of families, and allows to make predictions about effects of economic and istitutional changes. To reach this goal, the model simulates the main demographic events in the life of individuals, like death, marriage, separation, birth, migrations, and assigns other important features to individuals, like the instruction level, status in the workforce, employment sector and occupation. In the end, depending on their features it determines their income, social stability and the decisions for saving and investments.
The initial model was written in a high level statistic language and environment (STATA). Even if carefully designed, the prototype suffered because of limitations of the language it was implemented in.
The software, rigid and monolithic, wasn't flexible enough to adapt to potentially different economic situations. Moreover, it was too slow to allow for detailed simulation: with an execution time of about ten minutes for each simulated year, it needed a whole day to complete a 50 years simulation, for a limited 50000 people sample.
A rewrite in Fortran (Zhang 2004) partially solved execution time problems, but the resulting program became more rigid and hard to understand for economists.
In 2008 a new workgroup on microsimulation model of the Research Area of Banca d'Italia carefully evaluated the different approaches to reimplement and extend the DYNAMITE model.
The Python language was chosen.
This talk presents the reasons leading to this choice, and the promises Python mantained now that half of the implementation is done.
Ando, A., A. Brandolini, G. Bruno et al. (1999), The Bank of Italy's Dinamic Microsimulation Model of the Italian Economy (DYNAMITE): Recent Developments, SADIBA, Perugia, Banca d'Italia
Ando A. and Nicoletti Altimari S., (2004), A Micro Simulation Model of Demographic Development and Households' Economic Behavior in Italy, Temi di discussione Banca d'Italia n. 533.
Research Projects in Pension - Models for Retirement Policy Analysis