add support for quasi-monte carlo sampling
quasi monte carlo sampling techniques make use of low-discrepancy sequences (e.g., the Sobol sequence in Scipy >= 1.8.0). These have faster convergence properties than "normal" monte carlo sampling techniques.
Support should include
-
each 1D sampling distribution should support a CDF and an invCDF so we can map the low-discrepancy sequence in the unit interval [0, 1) into "physical parameters" -
EventGenerators should know how to sample from the low-discrepancy sequence and enforce rules like - the number of samples generated must be a power of 2
- each SamplingDistribution in self.generators must be 1D
Sanity checks should include
-
demonstration of improved scaling of integral accuracy (usually defined with RMSE) -
demonstration/enumeration of "gotcha" situations, like those described in Owen 2020 - more importantly, how badly will our estimates be affected if we do not use 2**m samples but instead use some other number?
Updated tests
-
use the object's CDF instead of numerically computing it on a grid from calls to prob
Edited by Reed Essick