In thinking about the strengths and limitations of different surveillance
systems — from the perspective of infectious disease forecasting in my case,
but the point applies more generally — it becomes clear that there is
no silver bullet.
No one surveillance system will tell us everything we need to know in order to
understand the current impact of a disease on a population, or to predict the
future impact of a disease.
The surveillance pyramid
model illustrates this in a very nice and clear manner:
I’ve been learning a bit of Rust in the past few
weeks, mostly by writing some basic SIR-type models (both as ODE systems, and
as continuous-time and discrete-time Markov chains).
It takes most (maybe all) of the things that I like about
OCaml and adds more great features and safety guarantees,
thanks to its ownership model and lifetimes.
It’s also very fast (no garbage collector, zero-cost abstractions) and has
fantastic tooling, although compilation
times can be very long, and package (“crate”) availability can be very
I’ve enjoyed it enough that I’m looking forward to writing more Rust code in
Although I’ve no plans to rewrite pypfilt or
epifx in Rust any time soon!
Two firsts in one: “Model selection for seasonal influenza
is Alex’s first first-author
and my first last-author paper.
It will appear in an upcoming issue of Infectious Disease Modelling, a new
open access journal with a focus on the interface between mathematical
modelling, data analysis, and public health decision support.