2026-08-14 –, Muschel — N2 All times in Europe/Berlin
Delay distributions describe the time between epidemiological events, such as infection to symptom onset or symptom onset to hospitalisation.
Estimating these distributions from outbreak data is difficult because both the primary event (e.g. infection) and the secondary event (e.g. symptom onset) are usually only known to have occurred within a time window, such as a day.
Real-time outbreak data is also often right-truncated as longer delays have not yet been observed.
Ignoring double interval censoring and truncation biases parameter estimates which are then used for forecasting and transmission modelling.
Adjusting distributions for primary event censoring addresses this by integrating the delay CDF over the primary event window, weighted by the density of when, within the window, the event occurred.
This can then be combined with truncation and secondary interval-censoring adjustments to produce a double-interval-censored and right-truncation-adjusted distribution.
In this talk, we present CensoredDistributions.jl, which implements these adjustments as primary_censored, interval_censored, and double_interval_censored, composable Distributions.jl wrappers.
Multiple dispatch selects closed-form CDFs for delay and primary event distribution pairs where these are available, and falls back to numerical integration otherwise.
We demo the package standalone and with Turing.jl for parameter estimation.
We then compare to primarycensored, our equivalent R package, which also ships a duplicate set of Stan functions so users can fit models in either language.
Maintaining two parallel implementations required reimplementing distribution functions in Stan, building tooling to vendor Stan code into downstream projects, and replacing types with integer distribution identifiers.
Stan's integral solver was also unstable for this problem, so we had to recast it as an ODE.
Julia's multiple dispatch and ecosystem composability eliminates all of this.
We then summarise our plans to build a composed Julia version of our epidist R package, using CensoredDistributions.jl as a foundation with Turing.jl submodels for partially pooled and flexible delay estimation.
I am an Assistant Professor at the London School of Hygiene & Tropical Medicine. I did my PhD in the optimal usage of the BCG vaccine, transitioning to work on real-time modelling of infectious disease outbreaks on the 3rd of January 2020. Four days later, I switched to work on what was then known as 2019-NCoV. I did early work on the size and scale of the initial outbreak, tracking transmissions in different countries, and exploring the potential role of different interventions. Throughout the pandemic, I ran a dashboard that was used by over a million people. I also provided estimates, forecasts, and analyses weekly to the UK government advisory bodies. I developed the tools and methods we used into open source software and these were used by upwards of 30 public health agencies around the world. I have continued to work in this area with a focus on improving tools and methods used both in research and in public health practice. I have recently transitioned to Julia for my work and am exploring how to propogate Julia based tools to the users of our current tooling and to the wider infectious disease modelling community.