Has anyone come across other good implementations?
As a side note, I've been doing more probabilistic programming with pymc3 recently, and it's pretty incredible how leaky the abstractions can be. I'm not saying there's a way to do better, just that at present there's a huge gap between the beautiful vision of "the inference button" and the current tools.
Guesstimate is awesome, but their team sadly stopped working on it a while back. It's definitely early days for automated inference, but I think giving people the tools to build "static" (non-learning) models that can account for uncertainty is hugely valuable in itself. You need serious gymnastics to do this in spreadsheets right now, and I wouldn't wish Excel's probabilistic plugins (Palisade @RISK, Oracle Crystal Ball) on anyone.
But progress towards the "inference button" dream is starting to accelerate:
- Tensorflow recently got its own PPL [1]
- The first international conference on probabilistic programming was held (PROBPROG 2018) [2]
- Lots of PPL development going on in tech companies: Uber, FB, Google, Microsoft, Stripe, Improbable, etc.
[1]: https://www.tensorflow.org/probability
[2]: https://probprog.cc/
1) https://www.microsoft.com/en-us/research/project/infernet/ 2) http://videolectures.net/mlss09uk_bishop_ibi/
Yeah, there's a pretty active debate in the probabilistic programming R&D community over whether it's a bug to sell people on "the inference button", then deliver a leaky abstraction, or a feature to offer richly programmable inference. Our lab has been working on some ideas to get "basic" and "advanced" inference techniques and generative models to compose together nicely to try and build a bridge between the two options[1]
[1] https://drive.google.com/file/d/1bv8g7KTgpgRLsx3ZcaPzIlhGzSa..., https://arxiv.org/abs/1811.05965
It reminds me of this great paper that highlights how much information we're losing when we're only looking at means or assume everything is normally distributed. https://arxiv.org/pdf/1806.02404.pdf
https://github.com/asemic-horizon/stanton
As a bonus, since the spreadsheet model is exposed as a Python function, emulating complex spreadsheets with simple ML models (decision trees...) is easy.
@Risk and CrystalBall were some of the earlier Excel add-ins which simplified simulation-based spreadsheet development.
As someone else mentioned, the Excel/Python combination is really powerful, although lower-level. DataNitro comes to mind, as well as a product by Resolver Systems (?) which was essentially an IronPython powered spreadsheet interface.
Assuming I am just guessing at the distribution of `A` and `B` (Uniform? Bernoulli? Geometric? Log-Normal?), would I get a better estimate by just multiplying `mean(A)` `mean(B)` ?
Point values suck. However, predicting the mean is often possible/realistic. And I feel like I am taking wild guess when describing a distribution of a data set to be honest.
TLDR: What results in better prediction/guestimate? multiplying incorrect probability distributions? Or multiplying more-correct means/point values?