I’m learning the stan language for probabilistic programming, and what an experience! As an application case, we collaborate with Sandvik in the Swedish Metal project, to estimate the composition of recycled steel scrap.
Probabilistic programming lends itself well for these kind of problems. What you do is that you define the problem as a statistical problem, and declare in the stan language the way you think the data was produced, and how data (the evidence) strengthens the posterior. Yes, it’s Bayesian.
Once the problem is declared and the data is read in, the parameters for the model can be learned, and the NUTS (I like that name!) Markov chain sampling algorithm will start working. As an output, you get samples and estimates of values for the open parameters that are needed to fit the information you have, together with the statistical declaration.
There are many tutorials available, and stan can be run with many languages, preferrably R and Python. I’m using rstan with R.