This post mainly links out to another post, but I thought that the readers here may be interested.

In this post, we (Recast) lay out how we explain what “Bayesian” means to our clients, who often don’t have a deep background in statistics.

At a high level, we think of (and explain) Bayesian statistics as being a principled way of answering the question “what simulation am I in?”, and that you can think of the process of updating your priors as a process of running simulations: first running simulations based on your assumptions, and then weighting them based on how well they fit the data.

This is a totally valid way of doing Bayesian inference. It’s actually how McElreath kicks things off in his Rethinking lectures (see here).

The kick is that while it’s mathematically equivalent to modern methods, it’s not *computationally* equivalent:

And this is why we have to use a state-of-the-art inference engine like Stan.

But even though we don’t actually run simulations and then re-weight them, we can think of how many simulations you would have had to have run in order to get your results as a useful gauge of the power of your inference engine. We can call this metric “effective simulations”.

To get the results that Stan can produce, you’d have to run an astronomically large number of simulations, so its power on the “effective simulations” metric is astronomically large. Compare this with a tool like Robyn, that uses an algorithm that actually *does* run simulations one at a time. It can only run on the order of tens of thousands of simulations. There is simply no comparison of the power of the two approaches. Dynamic HMC (or “Bayesian”) runs the table.