Skip to content

Add Randomized Latin Hypercube Sampling (RLHS) discrete distribution #573

Description

@Samuel-Vangu

Motivation

QMCPy provides several low-discrepancy constructions, but does not appear to provide a Randomized Latin Hypercube Sampling (RLHS) distribution.

RLHS is a variance reduction technique that ensures uniform coverage of each dimension while preserving the unbiasedness and convergence properties of standard uniform random sampling.

Proposed feature

Add a Randomized Latin Hypercube Sampling (RLHS) discrete distribution following the existing QMCPy distribution interfaces and conventions.

The construction is based on

$$ X_i^j = \frac{\Pi_j(i) - U_i^j}{n}, \quad i = 1, \dots, n,; j = 1, \dots, d, $$

where $\Pi_j$ are independent uniform random permutations of ${1, \dots, n}$, and $U_i^j \sim \mathcal{U}([0, 1[)$ are i.i.d. and independent of the permutations.

Each point satisfies $X_i \sim \mathcal{U}([0, 1[^d)$, so all results for uniform random sequences apply (unbiased estimators, convergence rate, etc.). In addition, RLHS provides:

  • Better space-filling properties than pure random sampling.
  • Exact stratification in each dimension, ensuring that every coordinate stratum is represented exactly once per dimension.
  • Reduced variance for integrands that are monotonic or additive.

Proposed implementation

  • Add the new distribution to the appropriate QMCPy module.
  • Follow the existing distribution API.
  • Add unit tests for the mathematical construction and edge cases.
  • Add documentation and examples.
  • Add references to the relevant literature.

I would be interested in implementing this feature.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions