LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC...
-
Upload
brianna-carter -
Category
Documents
-
view
216 -
download
2
Transcript of LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC...
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 rs i ty o f Leuven , and CEPS/ INSTEAD )PH IL IPPE L IÉGEOIS (CEPS / INSTEAD and DULBEA ,
ULB)RAPHAËL DESMET (Federa 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/fi rms/plants; groups/households/individuals) on a moment in time, or their events over time.
In a dynamic setting, individuals are born (fi rms are started), they marry/divorce (fi rms merge, parts are sold), go through an economic career (idem), they retire and die (go bankrupt; are absorbed by another fi rm).
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 effi cient 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)
LIAM2; GENESIS = discrete-time dynamic ageing MSM JAMSIM = discrete-time agent-based (?) models, ModGen = (mostly) continuous-time modelling.
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
7
A MODEL IN LIAM2 : (A) THE BRICKS
ENTITIES : objects (persons, households, fi rms, 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 specifi c 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 fi le for « globals » and one fi le for all entities and fields
Create a description fi le, 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
LIAM2 allows for
« many2one » or « one2many » links
mathematical functions,
conditional expressions,
aggregate functions,
temporal functions,
link functions,
random functions,
stochastic simulations,
life-cycle functions,
matching functions,
output functions
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
11
« logit_regr(expr[, align=‘fi lename’)]) »
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
Luxembourg (CEPS/INSTEAD: MIDAS_Lu),
Hungary (CANPI: MIDAS_Hu),
Italy (Tesoro: T-DYMM)
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
16
CONCLUSIONS
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)
Effi cient 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
IGSS Luxembourg