Modelling uncertainty propagation in forecasts 🔮

Hi everyone,

I’ve been playing with Causal, a business modeling platform which does automatic uncertainty calculations in forecasts.

This works by allowing one to set model parameters in terms of ranges, which are really just implicit symmetric triangular distributions. Once parameters have been set, that uncertainty propagates to the outputs of the model:

I’ve been looking on ways to do something similar on Julia (seems like a great fit for Pluto), but I’ve gotten stuck.

My best guess is this is implemented in terms of algebra of random variables (like Mathematica’s TransformedDistribution), but there doesn’t seem to be great support for this using Distributions.jl beyond basic convolutions.

I also found AlgebraPDF.jl, but I couldn’t get much from the documentation and, while I’m aware I could implement some of the algebra manually (like in this previous post), I want to first make sure there isn’t a simpler way to approach this. More importantly, I’m ignorant on whether this problem can be better restated in a Bayesian framework or in terms of something like belief functions.

What do you think? How could I tackle this in Julia?


What kind of model do you want to propagate uncertainty through, and what is the distribution of your uncertainty?
Measurements.jl is suitable to propagate Gaussian uncertainty through linear or weakly nonlinear models, while MonteCarloMeasurements.jl is suitable to propagate any kind of distribution through linear or nonlinear models, while being computationally heavier.