Sometimes you just need some elements of the inverse of a sparse matrix. Sometimes you’re working in C++. This is that time.| Un garçon pas comme les autres (Bayes)
I was writing a longer thing, but it was too long, so hey. Let’s just do this for a change| Un garçon pas comme les autres (Bayes)
I am, once again, in a bit of a mood. And the only thing that will fix my mood is a good martini and a Laplace approximation. And I’m all out of martinis. To be honest I started writing this post in February 2023, but then got distracted by visas and jobs and all that jazz. But I felt the desire to finish it, so here we are. I wonder how much I will want to re-write1 The post started as a pedagogical introduction to Laplace approximations (for reasons I don’t fully remember), but it rapid...| Un garçon pas comme les autres (Bayes)
The time has come once more to resume my journey into sparse matrices. There’s been a bit of a pause, mostly because I realised that I didn’t know how to implement the sparse Cholesky factorisation in a JAX-traceable way. But now the time has come. It is time for me to get on top of JAX’s weird control-flow constructs. And, along the way, I’m going to re-do the sparse Cholesky factorisation to make it, well, better. In order to temper expectations, I will tell you that this post does ...| Un garçon pas comme les autres (Bayes)
Welcome to part six!!! of our ongoing series on making sparse linear algebra differentiable in JAX with the eventual hope to be able to do some cool statistical shit. We are nowhere near done. Last time, we looked at making JAX primitives. We built four of them. Today we are going to implement the corresponding differentiation rules! For three1 of them. So strap yourselves in. This is gonna be detailed. If you’re interested in the code2, the git repo for this post is linked at the bottom an...| Un garçon pas comme les autres (Bayes)
This is part five of our ongoingseriesonimplementing differentiable sparse linear algebra in JAX. In some sense this is the last boring post before we get to the derivatives. Was this post going to include the derivatives? It sure was but then I realised that a different choice was to go to bed so I can get up nice and early in the morning and vote in our election. It goes without saying that before I split the posts, it was more than twice as long and I was nowhere near finished. So probably...| Un garçon pas comme les autres (Bayes)
Just some harmeless notes. Like the ones Judy Dench took in that movie.| Un garçon pas comme les autres (Bayes)
This is part three of an ongoing exercise in hubris. Part one is here.Part two is here. The overall aim of this series of posts is to look at how sparse Cholesky factorisations work, how JAX works, and how to marry the two with the ultimate aim of putting a bit of sparse matrix support into PyMC, which should allow for faster inference in linear mixed models, Gaussian spatial models. And hopefully, if anyone ever gets around to putting the Laplace approximation in, all sorts of GLMMs and non-...| Un garçon pas comme les autres (Bayes)
Come for the details, stay for the shitty Python, leave with disappointment. Not unlike the experience of dating me.| Un garçon pas comme les autres (Bayes)
Back in the early days of the pandemic I though “I’ll have a pandemic project”. I never did my pandemic project. But I did think briefly about what it would be. I want to get the types of models I like to use in everyday life efficiently implemented inside Stan. These models encapsulate (generalised) linear mixed models1, (generalised) additive models, Markovian spatial models2, and other models. A good description of the types of models I’m talking about can be found here. Many of th...| Un garçon pas comme les autres (Bayes)