Demo models‎ > ‎


A porting of the LIAM2 Demo07 model, a sample model distributed with the LIAM2 platform. 

By Matteo Richiardi, Ross Richardson and Michele Sonnessa (2014)

[ download a step-by-step JAS-mine tutorial based on the Demo07 model. Details of the publication are available here ]

The model features a population of 20,200 persons grouped in 14,700 households undergoing a number of demographic and other life course events on an annual basis between the years 2002 to 2061:
  • Birth: all women aged between 15 and 50 (inclusive) in any simulation year can give birth to a child, with a probability which is year- and age-specific and is reported in the file p_birth.xls.
  • Education: education (lower secondary, upper secondary or tertiary) is predetermined at birth. Individuals exit lower secondary education at age 16, upper secondary education at age 19, and tertiary education at age 24.
  • Exit from parental home: individuals aged 24 or over who are not yet married leave their parental home to set up a new household.
  • Marriage: all individuals aged 18 or over whose civil state is either single, divorced or widowed, are eligible for getting married in any given simulation year. The probability of marriage depends on age, gender and civil state, and is stored in the p_marriage.xls file. Given these probabilities, a subset of the unmarried population is sampled and those chosen are entered into the matching algorithm. Actual matching involves ordering all the females first; then starting with the top ranked female, all males are ordered and the best available male is matched. Then for the second ranked female, the remaining males are ordered and the best available male is matched, and so on until no more matches can be made (because there are either no more males or females to match). Females are ordered according to their age difference (in absolute value) with respect to the average age in the pool of females to be matched, |age-mean(age)|: females with an age closer to average ‘choose’ first, while older or younger females ‘choose’ later. For each female, males are ranked by looking at how their age and work status compares with the female’s age and work status: regression coefficients are stored in the reg_marriage.xls file.
  • Divorce: divorce probability depends on age difference between the partners, elapsed marriage duration, number of children and work status of both partners: regression coefficients are stored in the reg_divorce.xls file.
  • Employment: all individuals who are of working age (males: between 15 and 65; females: between 15 and 61) and whose previous work state was neither student nor retired are considered to be available to work. Conditional on this, individuals are employed with a probability which depends on age, lagged work state (either employed, unemployed or inactive), gender and marital status: regression coefficients are stored in the reg_inwork.xls file. The model does not distinguish between unemployment and non-employment.
  • Death: death is also a probabilistic event, with year- and age-specific death probabilities contained in the files p_death_m.xls and p_death_f.xls, for males and females respectively.

The divorce and employment processes are subject to alignment. The specific algorithm used in the LIAM2 implementation is called “Sorting by the difference between the predicted probability and a random number” (SBD, see Li and O’Donoghue, 2014), and – though quite common in the microsimulation literature – can be criticised over many theoretical grounds (see Stephensen, 2014). The JAS-mine alignment library implements it for completeness, though its use is deprecated. Here we use it to remain as close as possible to the original LIAM2 version (the reader does not need to understand how precisely it works). 
Executable versions of the demo models can be found at

A compressed .zip version of the Demo07 JAS-mine project can be downloaded by clicking on the 'down arrow' to the right hand side of the link below. When unzipping, choose to keep the directory structure if necessary.  Afterwards, the project can be imported into Eclipse by clicking on the 'File' tab in Eclipse, then selecting 'Import', expanding the 'General' directory and choosing 'Existing Projects into Workspace'. Select the root directory by browsing for the unzipped Demo07 directory in the location you extracted the files to. 'Maven Integration for Eclipse WTP' tool must be installed from the Eclipse Marketplace in order to obtain the necessary dependencies (the project should have no errors in the Problems window of Eclipse).  The simulation can be initiated by finding in the experiment package of the src directory, and choosing to run as a Java application.

The source code repository is available on GitHub at
JAS-mine Simulation,
May 23, 2016, 8:07 AM