17
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

LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

Embed Size (px)

Citation preview

Page 1: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 2: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 3: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 4: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 5: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 6: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 7: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 8: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 9: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 10: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 11: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 12: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 13: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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%)

Page 14: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 15: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 16: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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

Page 17: LIAM 2: A NEW OPEN SOURCE DEVELOPMENT TOOL FOR THE DEVELOPMENT OF DISCRETE-TIME DYNAMIC MICROSIMULATION MODELS GAËTAN DE MENTEN (Federal Planning Bureau)

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