LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau) GIJS DEKKERS (Federal Planning Bureau, CESO University of Leuven, and CEPS/INSTEAD) PHILIPPE LIÉGEOIS (CEPS/INSTEAD and DULBEA, ULB) RAPHAËL DESMET (Federal Planning Bureau) RAYMOND WAGENER (IGSS) CATHAL O’DONOGHUE (TEAGASC and NUIR) IGSS Luxembourg
IGSS Luxembourg. LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS. GAËTAN DE MENTEN ( Federal Planning Bureau) GIJS DEKKERS ( Federal Planning Bureau, CESO University of Leuven, and CEPS/INSTEAD ) - PowerPoint PPT Presentation
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL
FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS
GAËTAN DE MENTEN ( Federa l P l ann ing Bureau)GIJS DEKKERS ( Federa l P l ann ing Bureau , CESO
Un ive r s i t y o f Leuven , and CEPS / INSTEAD )PHIL IPPE L IÉGEOIS (CEPS/ INSTEAD and DULBEA,
ULB)RAPHAËL DESMET (Fede ra l P l ann ing Bureau)RAYMOND WAGENER ( IGSS)CATHAL O’DONOGHUE (TEAGASC and NUIR )
IGSS Luxembourg
2
CONTENTS OF THE PRESENTATION
LIAM2 : Objectives
Situating LIAM2 in the family of modelling packages
Some key elements of LIAM2
PERFORMANCE of LIAM2
Conclusions
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
3
Microsimulation models simulate compound objects, such as holdings/firms/plants; groups/households/individuals) on a moment in time, or their events over time.
In a dynamic setting, individuals are born (firms are started), they marry/divorce (firms merge, parts are sold), go through an economic career (idem), they retire and die (go bankrupt; are absorbed by another firm).
All these processes can be modelled and simulated by LIAM2
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
L I A M 2
IGSS Luxembourg
MICROSIMULATION
4
INTRODUCTION
LIAM2 is a new tool for the development of (large scale) dynamic microsimulation models (prospective as well as retrospective) with dynamic cross-sectional ageing (but also static models as a by-product)
The result of a collaborative project Development and testing: Federal Planning Bureau Testing and complementary funding: CEPS/INSTEAD and the
General Inspectorate of Social Security (IGSS) in Luxembourg LIAM and conceptual assistance: Cathal O’Donoghue
European funding (MiDaL Project 2009-2011, PROGRESS programme, Grant VS/2009/0569)
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
5
LIAM2 : OBJECTIVES
L I A M 2
IGSS Luxembourg
A development framework for the modelling and simulation of large scale discrete-time dynamic microsimulation models with cross-sectional dynamic ageing and alignment
A user-friendly and efficient development framework : Separate “modellers” and “programmers” Implementation of language which is easy to use for the modellers Use state-of-the-art methods for data handling and simulation
Stimulate collaboration between development teams through the use of a common development approach
Be open source, so that developers worldwide may add to the toolbox and make accessible their own modules when relevant for the community
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
6
SITUATING LIAM2
Developed based on the experience gained through using LIAM, but more general, faster, higher capacity, YAML, user interaction, modeling on multiple object levels, etc.
GENESIS : a generic SAS model and dataset. JAMSIM, ModGen : libraries for microsimulation in Java, respectively C++.
GENESIS used only by the UK MW&P. Not available ModGen, JAMSIM : Available but not open source LIAM : Available and open source ad hoc on request LIAM2: Available and open source (GNU Public License version 3)
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
7
A MODEL IN LIAM2 : (A) THE BRICKS ENTITIES : objects (persons, households, firms, cell,
…) with a unique identifier FIELDS : attributes of an entity (e.g. person’s age) LINKS : relation between entities (e.g. person’s
children) ; can lead to subsequent use (e.g. spouse.mother.age)
GLOBALS : a parameter not related to a specific entity, may vary through time (e.g. CPI)
PROCESSES : assignments, which change the value of a variable (e.g. « age+1 ») using an expression, and actions which do not (e.g. remove dead person)
MACROS : piece of code, re-evaluated each time it is referenced (e.g. « WIDOW: civilstate == 5 »)
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
8
A MODEL IN LIAM2 : (B) PREPARING THE INPUT DATASET
One CSV file for « globals » and one file for all entities and fields
Create a description file, then run it (e.g. bundled editor, F5) => HDF5
Þ Input created« normal.h5 »NB : This creation must be done only once(then LIAM2 reads the HDF5 input as it has been setearlier)
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
9
A MODEL IN LIAM2 : (C) THE GENERAL STRUCTURE
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
10
A MODEL IN LIAM2 : (C) DEFINING – ADDITIONAL FEATURES
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
11
« logit_regr(expr[, align=‘filename’)]) » No specific routine for monetary alignment is needed. LIAM2 allows for state alignment by sorting on –up to-
3 dimensions at a time. E.g. alignment to gender, age-category and previous labour
market state. LIAM2 allows for « soft » and « hard » take- and
leave- routines Soft take and leave: manipulate the risks Hard take and leave: specify categories within the alignment
procedure
A MODEL IN LIAM2 : A WORD ON ALIGNMENT
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
12
A MODEL IN LIAM2 : (D) RUNNING AND (E) DEBUGGING & OUTPUTTING
Run the model (e.g. bundled Notepad++ editor => F6) Debugging e.g. through interactive console
while running (error messages or intermediate results)
or at the end or ex post
Breakpoints (« breakpoint([period]) ») can be introduced in the model, which will automatically launch the interactive console
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
13
PERFORMANCE of LIAM2
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
Starting dataset of 300K individuals Starting dataset of 2,200K individuals
Total runtime:
31 minutes 18.58 seconds
16792 individuals/s/period on average
top 10 processes:
1- output_process: 9 m. 38.00 s. (31%) 2- dead_procedure: 4 m. 23.51 s. (14%) 3- family_allowances: 2 m. 28.46 s. (8%) 4- welfare: 1 m. 32.77 s. (5%) 5- matching_process: 1 m. 23.81 s. (4%) 6- ssc_tax_process: 55.47 s. (3%) 7- hours_process: 51.18 s. (3%) 8- inwork_process_working_t-1: 48.76 s. (3%) 9- inwork_process_not_working_t-1: 42.92 s. (2%) 10 - clean_empty: 37.41 s. (2%)
Total for top 10 processes: 23 minutes 22.30 seconds (75%)
Total runtime:
3 hours 13 minutes 51.94 seconds
17356 individuals/s/period on average
top 10 processes:
1- output_process: 1 hr 14.65 s. (31%) 2- dead_procedure: 27 m. 50.41 s. (14%) 3- family_allowances: 15 m. 32.62 s. (8%) 4- matching_process: 9 m. 55.66 s. (5%) 5- welfare: 9 minutes 50.01 s. (5%) 6- ssc_tax_process: 5 m. 19.80 s. (3%) 7- hours_process: 5 m. 4.92 s. (3%) 8- inwork_process_working_t-1: 4 m. 42.53 s. (2%) 9- clean_empty: 4 m. 22.95 s. (2%) 10 - inwork_process_not_working_t-1: 4 m. 4.12 s. (2%)
Total for top 10 processes: 2 hours 26 minutes 57.66 seconds (76%)
14
THE STATE OF AFFAIRS: WHERE IS LIAM2 BEING USED?
The model MIDAS_BE is operational in Belgium Model developments are being done in
Testing is going on in the Netherlands (Uitvoeringsinstituut Werknemersverzekeringen) UK (Department of Work and Pensions) Academics in Japan, South Korea, Suriname, the Netherlands, Spain
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
15
LIAM2 : HOW TO PROCEED?
Download the LIAM2 bundle from http://liam2.plan.be/
The bundle includes : The executable (either 32 or 64 bit version) A text editor (Notepad++), pre-configured to work with LIAM2 Documentation A demonstration model (20,200 persons, 14,700 households)
Create the starting dataset, alignment tables and behavioural equations
have fun!
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
LIAM2, a new development tool for the development of (large scale) static and discrete-time dynamic microsimulation models
User-friendly and Open source (low entry cost) Efficient and fast, using state-of-the-art methods for
data-handling and simulation methods, transparant for the end-user (modeller), using YAML and macros.
Available for free
L I A M 2
IGSS Luxembourg
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2
17
THANK YOU – MERCI BIEN
L I A M 2
G I J S D E K K E R S - S É M I N A I R E S C I E N T I F I Q U E C A I S S E D E S D É P Ô T S , B O R D E A U X L A C . J E U D I 1 5 N O V E M B R E 2 0 1 2