I build statistical models that turn incomplete, noisy data into estimates and predictions with honest uncertainty. Typical questions: how a drug's concentration evolves across a patient population and how much individuals differ; which readings in a sensor network are implausible and why; how regions compare once small sample sizes are taken into account. Results are delivered as reproducible analyses, reports and interactive dashboards, as open-source software.
Modelling showcases
Population PK/PD: warfarin
How do drug concentrations and a biomarker respond to a dose, how much do patients differ, and which daily dose keeps most patients in range? A population model of the classic warfarin data: plasma concentrations and clotting activity in 32 people after one dose.
Plasma warfarin after one dose of 1.5 mg/kg: measurements (dots) and each subject's fitted curve with its 90% interval.
Clotting activity falls with a delay of about two days and recovers as warfarin is cleared; the turnover model captures both.
Simulated from the fitted population: share of new patients whose clotting activity is in an illustrative target range after 14 days of a daily dose (highest at 10.0 mg), and the share pushed below it.
Data: O'Reilly & Aggeler (1963, 1968), as distributed in the nlmixr2data R package.
health
pharmacometrics
multilevel
dosing
Regional trends across Germany's districts
How fast is the share of young children receiving integration assistance changing in each district? Six yearly values give each district a noisy trend; a Fay–Herriot-type small-area model pools each district towards its state as far as its data warrant.
Estimated change per year, 2020–2025 (posterior median); hover a district for its raw trend and 90% interval. The middle 90% of raw district trends spans −13% to +20% per year; pooled, −7% to +14%. Colours stop at ±20% per year; 11 districts lie beyond. Published counts are rounded to multiples of 5.
How fast is Germany warming, and how sure can we be? A smooth trend fitted to annual means since 1881 and continued ten years ahead with its uncertainty.
Dots: Germany's annual mean temperature, 1881–2025. Line and bands: the estimated trend (median, 50% and 90% intervals), about 2.6 °C warmer than in 1881, continued to 2035. The continuation is a statistical extrapolation of the trend, not a climate projection.
Has every part of Germany warmed alike? Each state's smoothed temperature trend against its own 1961–1990 level, as an animated map from 1881 to today.
Each state's smoothed temperature trend (posterior median), relative to its own 1961–1990 level; press play to step through the years from 1881. By 2025 every state had warmed by 1.8 to 2.0 K. Berlin, Hamburg and Bremen share DWD's series with their neighbours.
Plausibility checks in a radiation monitoring network
Which readings of Germany's ambient gamma dose rate network need a second look? A Bayesian model of each probe (baseline, daily cycle, rain washout, rare unexplained readings) separates rain peaks from readings it cannot explain.
Ilmmünster, 14 October 2026 to 20 October 2026: hourly readings (dots), the model's expected level with its 90% band (blue) and the level without rain washout (dashed); dotted red: a fixed threshold (median plus 3 robust standard deviations). The reading is above the threshold in 7 hours, 5 of them during rain, which the model explains; it flags 2 hours it cannot explain (red). Below: the radar rain class at the probe.
Data: Bundesamt für Strahlenschutz (BfS), ODL-Info open data, hourly dose rate and radar precipitation, 14–20 October 2026; model results as of 20 October 2026.
environment
monitoring
multilevel
anomalies
Fewer false pre-alarms
A fixed threshold raises a pre-alarm whenever rain lifts the reading. Across the whole network, the model explains rain peaks and keeps only the pre-alarms it cannot explain.
Probes with at least one pre-alarm under a fixed threshold rule in the week to 20 October 2026 (1,379 of 1,558). The model keeps pre-alarms at 487 of them (red) and explains the others by rain. Of 9,626 hours above the threshold it leaves 1,274 (13%) unexplained; 40 of 92 pre-alarm episodes remain.
Did a programme change the outcome, and when? Municipalities adopt it in different years; an event-study model compares adopters with non-adopters year by year.
Estimated programme effect by year relative to adoption (median, 50% and 90% intervals); diamonds: the effects the data were simulated with. Before adoption the estimates stay near zero, which checks the comparison: 30 adopting and 30 non-adopting municipalities.
Synthetic data: 60 simulated municipalities over 12 years.
government
evaluation
causal
Open-source software
BayesianRegressionModels.jl
Regression models written as brms-style formulas, compiled to Stan.
since 2025Independent consultant: Bayesian pharmacometric modellingGenerable Inc.2022 – 2026Postdoctoral research in probabilistic modellingAalto University; University of Cambridge2021PhD in MathematicsRWTH Aachen University2017BSc and MSc in Computational Engineering ScienceRWTH Aachen University
This website sets no cookies, uses no tracking or analytics, and loads no content from third parties. It is hosted on GitHub Pages; when you visit, GitHub Inc. processes technical access data such as your IP address to deliver the site and protect it from misuse (Art. 6(1)(f) GDPR); see GitHub's privacy statement. Controller: Nikolas Siccha (see legal notice). You have the rights of access, rectification, erasure, restriction and objection, and the right to lodge a complaint with a supervisory authority.