Julia and Demography

Is there any work on (computational) demography using Julia?

I’m using it for agent-based simulation of human migration (first results to be presented at ALife 2019 in Newcastle).

1 Like

Do you follow work from Max Planck (Sabine Zinn, etc.) about migration?

I’ve met her at a workshop we had last year, but not specifically. If you are interested this is our project’s official web site:
https://www.southampton.ac.uk/baps/index.page

2 Likes

Thank you. I have been there but did not found anything Julia related, but I started reading a book chapter by Bijak about Modeling in Demography.
I am mainly interested in ABM simulation of retirement pensions and I am using R and NetLogo. Meanwhile I am learning Julia because I like the cleaner syntax of the language.

We’ll have a paper at WinterSim that compares the Julia implementation with one in a DSL (ML3 by the Uhrmacher group in Rostock). I’ll post it here or on ResearchGate when it’s out. In the meantime here’s a simplified version of the model I’m currently working on:
https://github.com/mhinsch/RRGraphs_mini

I’ve been doing ABMs (or IBMs as they are called in biology) for a long long time, mostly in C++ for efficiency. With 0.7 Julia finally came close enough to C++ in my own benchmarks (10-20%), so this is the first time I’ve done a full simulation project in Julia.

I have to say, it’s been close to a revelation. It’s much more fun to write, the code is way cleaner and many things that are very hard in C++ are close to trivial in Julia. For example I’m using Parameters.jl for the simulation parameters. Together with ArgParse.jl and a tiny bit of glue code that gives me a 0-overhead parameter file with a nice syntax that at the same time is used to automatically generate command line parameters with proper default values and documentation. Any similar solution I could come up with in C++ would be half as convenient and ten times as ugly.

I’m also using Julia (in a Jupyter notebook) to analyze the simulation results now. Apart from the plotting (gadfly and plots both have their shortcomings) that works really well.

7 Likes

Creating some competition with ML3 with Julia would be very interesting. I tried to run your model but I had not enough success. So, I open an issue on GitHub.
I am very interested to understand what you really want to do with your paper.

Sorry the code didn’t work for you - the README was pretty out of date (thanks BTW, for bringing this to my notice). I’ve updated it, at least the REPL version should work now.

In case anybody is interested, this is a paper I’ll present at ALife next week about the simulation I mentioned earlier in this thread.

2 Likes

Ah - demography… not demonography. Perhaps says something about my mind…
Seriously though this is a fascinating application.

Some years ago I installed an HPC cluster at the UK Health Protection Agency which was used for modelling the spread of epidemics. I guess this uses similar mathematics - infected Person A meets Person B and there is X percent chance of transmitting the disease.