added MCMC posterior_predictive_branch sampler#1086
Conversation
|
@perrydv @paciorek I've reviewed all the failures carefully, because I was curious if the sampler assignment logic held up. The first failures are cases where the new In Next failure is in Finally, there are a bunch of failures again the "gold file" of exact MCMC results that I'm seeing, I think all from Thought about how to proceed? |
|
@perrydv @paciorek I fixed the testing failures.
I'd welcome any review on this. @perrydv also your careful eye for efficiency. |
|
@perrydv I'm going to modify this PR to use node graph IDs instead. |
|
@perrydv Unfortunately, some quick efficiency tests have shown this approach to be unusable. Back to the drawing board. I have an alternate idea for a "bottom-up" approach to the problem, using |
|
@perrydv This checking and assignment is now "fast", and doesn't bog down the MCMC configuration process. I'd welcome any code review, or to merge this into devel. |
|
Many of our options are framed as "actions", i.e., they have a verb in them. If "Sample" here is a verb, then it should be "jointlySample" not "jointSample". Obviously minor, but my two cents. |
|
@paciorek I added your idea of avoiding any checking, when there's no possibility whatsoever of any posterior branches. Indeed, in some cases this totally alleviates the checking time. Good idea. |
|
@danielturek Here are some suggestions on the code:
|
|
@danielturek Here is a possibly challenging benchmark case: I think this will give 10000 posterior predictive branches, each with a (ypred[i], zpred[i]) pair. |
|
@perrydv I've made some efficiency improvements to identifying posterior predictive branches. Notably, I've combined the 3 loops into a single loop, which now only contains a single call to Also, the "possibly challenging benchmark case" you presented, the MCMC configuration time is nearly identical for using / not using the option Thanks for the careful code review. I'd like to say this is ready to merge, but I welcome any further feedback. |
|
Few more small changes, but again I consider this ready to merge. |
|
👍 Merging this is good with me. Here is an idea for where we could go with this and also to avoid conditioning on any posterior predictive nodes in MCMC. We could give the maps a This is still different from grouping predictive nodes into shared branches as this PR does. |
|
@perry I fully support the idea of adding a |
|
I also like the |
@perrydv @paciorek Added checking for jointly posterior predictive networks of nodes and a new
posterior_predictive_branchsampler to be assigned to them.I've tested this (what I believe to be) pretty well, although admittedly no new testing was added. But I believe it's sound. Code review or testing is welcomed.