Skip to content

Add reproducible mixed distributions blog analysis - #641

Open
Laasya-73 wants to merge 1 commit into
developfrom
blog/mixed-distributions
Open

Laasya-73 wants to merge 1 commit into
developfrom
blog/mixed-distributions

Conversation

@Laasya-73

Copy link
Copy Markdown
Collaborator

Summary

This PR adds a reproducibility notebook supporting the Mixed Distributions in QMCPy blog.

The notebook compares hierarchical mixture sampling and probability-weighted component integration at equal computational cost, reproducing the numerical results and figures presented in the blog.

Changes

  • Added demos/mixed_distributions_blog_analysis.ipynb with one-dimensional and correlated higher-dimensional Gaussian mixture experiments.
  • Implemented equal-cost comparisons using randomized quasi-Monte Carlo sampling, including 32 replications and 100 paired mixture instances.
  • Included analytical reference values, RMSE comparisons, convergence plots, and four reproducible figures.
  • Added test/booktests/tb_mixed_distributions_blog_analysis.py to validate saved outputs and run reduced-workload experiments efficiently in CI.
  • Updated scripts/colab_notebooks_manifest.json to register the notebook.
  • Preserved the existing Mixture implementation and mixed_distributions.ipynb demo without modifications.

@Laasya-73 Laasya-73 self-assigned this Oct 21, 2026
@Laasya-73
Laasya-73 requested a review from alegresor October 22, 2026 15:30

@alegresor alegresor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! A few non-blocking suggestions below

  • In the first line you link the PR and the demo notebook. Perhaps remove the PR link and add a link to the blog when published?
  • Please confirm the first line plot is the total budget and not budget per component in the orange case. It is surprising hierarchical matches or even outperforms component-based on all other tests except this first one. Perhaps this is expected though?

@Laasya-73

Copy link
Copy Markdown
Collaborator Author

@alegresor

The plots use the total evaluation budget N, not N per component. Hierarchical sampling uses N evaluations, while component integration uses N/2 for each component, totaling N. I'll make this clearer near the first plot.

In 1D, component integration benefits from avoiding the selector discontinuity. In higher dimensions, performance also depends on the integrand and QMC transformations, which may explain why hierarchical sampling performs comparably or better in some cases.

Thanks for the suggestions!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants