Table of Contents
Fetching ...

Efficient simulation of individual-based population models: the R Package IBMPopSim

Daphné Giorgi, Sarah Kaakai, Vincent Lemaire

TL;DR

IBMPopSim solves the computational challenge of simulating heterogeneous, age-structured stochastic IBMs by combining a unified measure-valued SDE representation with thinning-based Poisson simulation implemented in C++ via Rcpp. The framework supports multiple event types (birth, entry, death/exit, swap) with intensities that can depend on time, age, characteristics, and inter-individual interactions, including quadratic interaction terms. Key contributions include rigorous non-explosion criteria, exact thinning-based and randomized algorithms, and practical workflows for model creation, simulation, and analysis (e.g., age pyramids and life-table outputs) across domains such as actuarial science and ecology. The package demonstrates its versatility and efficiency through detailed examples (insurance portfolios and trait-based interacting populations) and provides tools to study dynamic population structures under complex mortality and fertility regimes, with reproducible, high-performance simulations enabled by Rcpp.

Abstract

The R Package IBMPopSim aims to simulate the random evolution of heterogeneous populations using stochastic Individual-Based Models (IBMs). The package enables users to simulate population evolution, in which individuals are characterized by their age and some characteristics, and the population is modified by different types of events, including births/arrivals, death/exit events, or changes of characteristics. The frequency at which an event can occur to an individual can depend on their age and characteristics, but also on the characteristics of other individuals (interactions). Such models have a wide range of applications in fields including actuarial science, biology, ecology or epidemiology. IBMPopSim overcomes the limitations of time-consuming IBMs simulations by implementing new efficient algorithms based on thinning methods, which are compiled using the Rcpp package while providing a user-friendly interface.

Efficient simulation of individual-based population models: the R Package IBMPopSim

TL;DR

IBMPopSim solves the computational challenge of simulating heterogeneous, age-structured stochastic IBMs by combining a unified measure-valued SDE representation with thinning-based Poisson simulation implemented in C++ via Rcpp. The framework supports multiple event types (birth, entry, death/exit, swap) with intensities that can depend on time, age, characteristics, and inter-individual interactions, including quadratic interaction terms. Key contributions include rigorous non-explosion criteria, exact thinning-based and randomized algorithms, and practical workflows for model creation, simulation, and analysis (e.g., age pyramids and life-table outputs) across domains such as actuarial science and ecology. The package demonstrates its versatility and efficiency through detailed examples (insurance portfolios and trait-based interacting populations) and provides tools to study dynamic population structures under complex mortality and fertility regimes, with reproducible, high-performance simulations enabled by Rcpp.

Abstract

The R Package IBMPopSim aims to simulate the random evolution of heterogeneous populations using stochastic Individual-Based Models (IBMs). The package enables users to simulate population evolution, in which individuals are characterized by their age and some characteristics, and the population is modified by different types of events, including births/arrivals, death/exit events, or changes of characteristics. The frequency at which an event can occur to an individual can depend on their age and characteristics, but also on the characteristics of other individuals (interactions). Such models have a wide range of applications in fields including actuarial science, biology, ecology or epidemiology. IBMPopSim overcomes the limitations of time-consuming IBMs simulations by implementing new efficient algorithms based on thinning methods, which are compiled using the Rcpp package while providing a user-friendly interface.
Paper Structure (57 sections, 11 theorems, 73 equations, 4 figures, 1 table, 4 algorithms)

This paper contains 57 sections, 11 theorems, 73 equations, 4 figures, 1 table, 4 algorithms.

Key Result

Theorem 1.1

Let $T\in {\mathbb{R}}^+$ and $\mathcal{J} = \mathbb N \times(\mathcal{E} \cup \mathcal{E}_W)$. Let $Q$ be a random Poisson measure on $\mathbb R^+ \times \mathcal{J} \times \mathbb{R}^+$, of intensity $\mathrm{d} t \delta_{\mathcal{J}}(\mathrm{d} k,\mathrm{d} e) \mathbf{1}_{[0,\bar{\lambda}^e]} (\ and where $I_{s^-}$ is an individual, chosen uniformly among alive individuals in the population $Z

Figures (4)

  • Figure 1: Realization of a Marked Poisson measure $\bar{Q}$ on $[0,T]$ with mean measure $\bar{\mu}(\mathrm{d} t, \mathrm{d} \theta) = \mathrm{d} t \mathbf{1}_{[0, \bar{\Lambda}]}(\theta) \mathrm{d} \theta$ (red crosses), and realization of the restriction $\bar{Q}^\Delta$ where $\Delta = \{ (t,\theta)\in [0,T]\times[0, \bar{\Lambda}], \theta \le \Lambda(t) \}$ (blue circles). The projection of $\bar{Q}^\Delta$ on first component is an inhomogeneous Poisson process on $[0,T]$ of intensity $(\Lambda(t))$ and jump times $(T_k)_{k \ge 1}$.
  • Figure 2: Information obtained from a simulation of the portfolio evolving over 30 years with individuals in risk class 1 (blue) and 2 (red).
  • Figure 3: Reproducing the example presented in FerTra09 and increasing the population size to observe the difference in computing time between the randomized and full algorithm.
  • Figure 4: Example of Marked Poisson measure on $[0,T]$ with $m(\mathrm{d} t) = L \mathrm{d} t$ (jump times occur at Poisson arrival times of rate $L$) and with $\nu(\mathrm{d} y) = \frac{1}{L} \mathbf{1}_{[0, L]}(y) \mathrm{d} y$ (marks are drawn uniformly on $[0,L]$). The mean measure is then $\mu(\mathrm{d} t, \mathrm{d} y) = \mathrm{d} t \boldsymbol{1}_{[0,L]}(y) \mathrm{d} y$.

Theorems & Definitions (25)

  • Remark 1.1
  • Remark 1.2
  • Theorem 1.1: Pathwise representation
  • Lemma 1.2
  • Proposition 2.1
  • Proposition 2.2
  • Remark 2.1
  • Theorem 2.3
  • Remark 2.2
  • Remark 2.3
  • ...and 15 more