A welcome is in order…

Kind of you to drop by! This is the personal website of Olivier Ma.

Solving Advent of Code 2025

I took the Solve It with Code course from answer.ai, and Advent of Code is used as practice. I always thought my Python skills were quite mediocre; I always used to in a “just get things done” style, so this is also a chance to improve my Python. For this reason I want to mostly stick with the standard packages and pythonic styles, and only use extra packages when it’s too cumbersome otherwise. ...

January 22, 2026 · 43 min · 9109 words · olivier

Eight Schools, or the importance of model reparameterisation

This is an introduction to NumPyro, using the Eight Schools model as example. Here we demonstrate the effects of model reparameterisation. Reparameterisation is especially important in hierarchical models, where the joint density tend to have high curvatures. 1 2 3 4 5 6 7 8 import numpy as np import jax.numpy as jnp import numpyro import numpyro.distributions as dist from jax import random from numpyro.infer import MCMC, NUTS, Predictive rng_key = random.PRNGKey(0) Here we are using the classic eight schools dataset from Gelman et al. We have collected the test score statistics for eight schools, including the mean and standard error. The goal, is to determine whether some schools have done better than others. Note that since we are working with the mean and standard error of eight different schools, we are actually modeling the statistical analysis resutls of some other people: this is essentially a meta analysis problem. ...

June 22, 2022 · 11 min · 2153 words · olivier