My interests lie in applied and computational statistics. A lot of my work is motivated by problems in Bayesian modeling. More precisely:

  • Simulation algorithms and the computation of high-dimensional integrals. This encompasses Markov chains Monte Carlo, Gibbs and Hamiltonian Monte Carlo sampling, and approximate methods such as nested Laplace approximations.
  • Automatic differentiation, meaning the computation of derivatives to supports gradient based algorithms. Particular emphasis on differentiating likelihoods that depend on implicit functions.
  • Hierarchical and latent Gaussian models, the geometry of their posteriors, and how this interacts with simulation algorithms.
  • Bayesian workflows for pharmacometrics, including classic pharmacokinetic/pharmacodynamic, and systems pharmacology models.
  • Spin glass models, graph models, and more generally high-dimensional discrete spaces.

Bayesian workflow

To make the most of our data, we need principled workflows to build, fit, and criticize our models. This can only be done if our computational tools allow us to express our scientific ideas and make accurate inference. Since we will break, debug and revise our models many times, we also need algorithms that run efficiently. Moreover, our tools must be expressive, accurate and fast. I work on the development of such tools and their software implementation, primarly in the probabilistic programing language Stan. Stan’s primary inference engine is Hamiltonian Monte Carlo (HMC) sampling.

I’m interested in the algorithmic differentiation of models with complex likelihoods to support gradient-based methods such as HMC. Examples of such models include DAE-based likelihoods and hidden Markov processes. I also study hybrid methods that combine HMC with approximate methods, such as the Laplace approximation, and can help us tackle models with high-dimensional latent variables.

Applications in pharmacometrics

Most models in pharmacometrics are based on systems of ordinary differential equations (ODEs). To do inference on such models, we not only need to solve ODEs, but also to propagate derivatives through them. We must furthermore model the broad array of treatments patients can undergo. To address these issues, I develop general purpose tools for ODE-based models in Stan. With colleagues at Metrum, I co-created Torsten, an extension of Stan with specialized routines for pharmacometrics.


With Sumit Mukherjee, I’m working on simulation methods for spin glass models, of which the Ising model is a special case.

In 2018, I worked on an econometrics model with Shosh Vasserman. The data generating process of the model involved the solution to a constrained optimization problem, resulting in a discontinuous posterior. Finding an appropriate sampler remains an open problem. See this discussion on non-smooth posterior and KKT.

In 2018, I did a class project in genetics with Elliott Gordon Rodriguez, working with Guy Sella and his lab in the biology department.

As an undergraduate at Yale, I worked with the exoplanet group, in the astronomy department.


I try to post formal articles on research gate. Here, I’ll also lay out other projects and resources.

Preprints and publications:

  • (2020) Hamiltonian Monte Carlo using an adjoint-differentiated Laplace approximation (with Aki Vehtari, Daniel Simpson, and Raj Agrawal) [preprint, code]

  • (2020) Bayesian Workflow for disease transmission modeling in Stan (with Leo Grinsztajn, Elizaveta Semenova, and Julien Riou) [preprint, html file, code, talk]

  • (2020) Estimation of SARS-CoV-2 mortality during the early stages of an epidemic: a modelling study in Hubei, China and northern Italy (by Julien Riou et al) [preprint]

  • (2020) The Discrete adjoint method: efficient derivatives for functions of discrete sequences (with Michael Betancourt and Vianey Leos-Barajas) [preprint]

  • (2019) A Review of automatic differentiation and its efficient implementation [article, preprint]
  • (2018) Computing Steady states with Stan’s nonlinear algebraic solver [article, code, talk]
  • (2017) Gaining Efficiency by combining analytical and numerical methods to solve ODEs: implementation in Stan and application to Bayesian PK/PD modeling (with Bill Gillespie) [poster]
  • (2017) Differential equation based models in Stan (with Bill Gillespie) [article, code, talk]
  • (2016) Stan functions for pharmacometrics (with Bill Gillespie) [poster]
  • (2014) Planet Hunters. VII. Discovery of a new low-mass, low-density (PH3 C) orbiting Kepler-289 with mass measurements of two additional plamets of two additional planets (PH3 B and D) (by Joseph Schmitt et al.) [article]

Software documentation (manuals, technical reports, and short articles):

  • The Stan Book (with the Stan development team) [manual]
  • Torsten User Manual (with Bill Gillespie and Yi Zhang) [manual]
  • (2018) Technical appendix for Torsten [technical report]
  • Contributing New Functions to Stan (with some colleagues on the Stan development team) [wiki page]


  • Stan: a probabilistic programing language (with the Stan development team) [Home page]
  • Torsten: a pharmacometrics library for Stan (with Bill Gillespie and Yi Zhang) [GitHub]
  • mrgsolve: pharmacometrics and quantitative systems pharmacology simulation in R (led by Kyle Baron) [Home page]