237 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			237 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| r"""
 | |
| ====================================================
 | |
| Quasi-Monte Carlo submodule (:mod:`scipy.stats.qmc`)
 | |
| ====================================================
 | |
| 
 | |
| .. currentmodule:: scipy.stats.qmc
 | |
| 
 | |
| This module provides Quasi-Monte Carlo generators and associated helper
 | |
| functions.
 | |
| 
 | |
| 
 | |
| Quasi-Monte Carlo
 | |
| =================
 | |
| 
 | |
| Engines
 | |
| -------
 | |
| 
 | |
| .. autosummary::
 | |
|    :toctree: generated/
 | |
| 
 | |
|    QMCEngine
 | |
|    Sobol
 | |
|    Halton
 | |
|    LatinHypercube
 | |
|    PoissonDisk
 | |
|    MultinomialQMC
 | |
|    MultivariateNormalQMC
 | |
| 
 | |
| Helpers
 | |
| -------
 | |
| 
 | |
| .. autosummary::
 | |
|    :toctree: generated/
 | |
| 
 | |
|    discrepancy
 | |
|    geometric_discrepancy
 | |
|    update_discrepancy
 | |
|    scale
 | |
| 
 | |
| 
 | |
| Introduction to Quasi-Monte Carlo
 | |
| =================================
 | |
| 
 | |
| Quasi-Monte Carlo (QMC) methods [1]_, [2]_, [3]_ provide an
 | |
| :math:`n \times d` array of numbers in :math:`[0,1]`. They can be used in
 | |
| place of :math:`n` points from the :math:`U[0,1]^{d}` distribution. Compared to
 | |
| random points, QMC points are designed to have fewer gaps and clumps. This is
 | |
| quantified by discrepancy measures [4]_. From the Koksma-Hlawka
 | |
| inequality [5]_ we know that low discrepancy reduces a bound on
 | |
| integration error. Averaging a function :math:`f` over :math:`n` QMC points
 | |
| can achieve an integration error close to :math:`O(n^{-1})` for well
 | |
| behaved functions [2]_.
 | |
| 
 | |
| Most QMC constructions are designed for special values of :math:`n`
 | |
| such as powers of 2 or large primes. Changing the sample
 | |
| size by even one can degrade their performance, even their
 | |
| rate of convergence [6]_. For instance :math:`n=100` points may give less
 | |
| accuracy than :math:`n=64` if the method was designed for :math:`n=2^m`.
 | |
| 
 | |
| Some QMC constructions are extensible in :math:`n`: we can find
 | |
| another special sample size :math:`n' > n` and often an infinite
 | |
| sequence of increasing special sample sizes. Some QMC
 | |
| constructions are extensible in :math:`d`: we can increase the dimension,
 | |
| possibly to some upper bound, and typically without requiring
 | |
| special values of :math:`d`. Some QMC methods are extensible in
 | |
| both :math:`n` and :math:`d`.
 | |
| 
 | |
| QMC points are deterministic. That makes it hard to estimate the accuracy of
 | |
| integrals estimated by averages over QMC points. Randomized QMC (RQMC) [7]_
 | |
| points are constructed so that each point is individually :math:`U[0,1]^{d}`
 | |
| while collectively the :math:`n` points retain their low discrepancy.
 | |
| One can make :math:`R` independent replications of RQMC points to
 | |
| see how stable a computation is. From :math:`R` independent values,
 | |
| a t-test (or bootstrap t-test [8]_) then gives approximate confidence
 | |
| intervals on the mean value. Some RQMC methods produce a
 | |
| root mean squared error that is actually :math:`o(1/n)` and smaller than
 | |
| the rate seen in unrandomized QMC. An intuitive explanation is
 | |
| that the error is a sum of many small ones and random errors
 | |
| cancel in a way that deterministic ones do not. RQMC also
 | |
| has advantages on integrands that are singular or, for other
 | |
| reasons, fail to be Riemann integrable.
 | |
| 
 | |
| (R)QMC cannot beat Bahkvalov's curse of dimension (see [9]_). For
 | |
| any random or deterministic method, there are worst case functions
 | |
| that will give it poor performance in high dimensions. A worst
 | |
| case function for QMC might be 0 at all n points but very
 | |
| large elsewhere. Worst case analyses get very pessimistic
 | |
| in high dimensions. (R)QMC can bring a great improvement over
 | |
| MC when the functions on which it is used are not worst case.
 | |
| For instance (R)QMC can be especially effective on integrands
 | |
| that are well approximated by sums of functions of
 | |
| some small number of their input variables at a time [10]_, [11]_.
 | |
| That property is often a surprising finding about those functions.
 | |
| 
 | |
| Also, to see an improvement over IID MC, (R)QMC requires a bit of smoothness of
 | |
| the integrand, roughly the mixed first order derivative in each direction,
 | |
| :math:`\partial^d f/\partial x_1 \cdots \partial x_d`, must be integral.
 | |
| For instance, a function that is 1 inside the hypersphere and 0 outside of it
 | |
| has infinite variation in the sense of Hardy and Krause for any dimension
 | |
| :math:`d = 2`.
 | |
| 
 | |
| Scrambled nets are a kind of RQMC that have some valuable robustness
 | |
| properties [12]_. If the integrand is square integrable, they give variance
 | |
| :math:`var_{SNET} = o(1/n)`. There is a finite upper bound on
 | |
| :math:`var_{SNET} / var_{MC}` that holds simultaneously for every square
 | |
| integrable integrand. Scrambled nets satisfy a strong law of large numbers
 | |
| for :math:`f` in :math:`L^p` when :math:`p>1`. In some
 | |
| special cases there is a central limit theorem [13]_. For smooth enough
 | |
| integrands they can achieve RMSE nearly :math:`O(n^{-3})`. See [12]_
 | |
| for references about these properties.
 | |
| 
 | |
| The main kinds of QMC methods are lattice rules [14]_ and digital
 | |
| nets and sequences [2]_, [15]_. The theories meet up in polynomial
 | |
| lattice rules [16]_ which can produce digital nets. Lattice rules
 | |
| require some form of search for good constructions. For digital
 | |
| nets there are widely used default constructions.
 | |
| 
 | |
| The most widely used QMC methods are Sobol' sequences [17]_.
 | |
| These are digital nets. They are extensible in both :math:`n` and :math:`d`.
 | |
| They can be scrambled. The special sample sizes are powers
 | |
| of 2. Another popular method are Halton sequences [18]_.
 | |
| The constructions resemble those of digital nets. The earlier
 | |
| dimensions have much better equidistribution properties than
 | |
| later ones. There are essentially no special sample sizes.
 | |
| They are not thought to be as accurate as Sobol' sequences.
 | |
| They can be scrambled. The nets of Faure [19]_ are also widely
 | |
| used. All dimensions are equally good, but the special sample
 | |
| sizes grow rapidly with dimension :math:`d`. They can be scrambled.
 | |
| The nets of Niederreiter and Xing [20]_ have the best asymptotic
 | |
| properties but have not shown good empirical performance [21]_.
 | |
| 
 | |
| Higher order digital nets are formed by a digit interleaving process
 | |
| in the digits of the constructed points. They can achieve higher
 | |
| levels of asymptotic accuracy given higher smoothness conditions on :math:`f`
 | |
| and they can be scrambled [22]_. There is little or no empirical work
 | |
| showing the improved rate to be attained.
 | |
| 
 | |
| Using QMC is like using the entire period of a small random
 | |
| number generator. The constructions are similar and so
 | |
| therefore are the computational costs [23]_.
 | |
| 
 | |
| (R)QMC is sometimes improved by passing the points through
 | |
| a baker's transformation (tent function) prior to using them.
 | |
| That function has the form :math:`1-2|x-1/2|`. As :math:`x` goes from 0 to
 | |
| 1, this function goes from 0 to 1 and then back. It is very
 | |
| useful to produce a periodic function for lattice rules [14]_,
 | |
| and sometimes it improves the convergence rate [24]_.
 | |
| 
 | |
| It is not straightforward to apply QMC methods to Markov
 | |
| chain Monte Carlo (MCMC).  We can think of MCMC as using
 | |
| :math:`n=1` point in :math:`[0,1]^{d}` for very large :math:`d`, with
 | |
| ergodic results corresponding to :math:`d \to \infty`. One proposal is
 | |
| in [25]_ and under strong conditions an improved rate of convergence
 | |
| has been shown [26]_.
 | |
| 
 | |
| Returning to Sobol' points: there are many versions depending
 | |
| on what are called direction numbers. Those are the result of
 | |
| searches and are tabulated. A very widely used set of direction
 | |
| numbers come from [27]_. It is extensible in dimension up to
 | |
| :math:`d=21201`.
 | |
| 
 | |
| References
 | |
| ----------
 | |
| .. [1] Owen, Art B. "Monte Carlo Book: the Quasi-Monte Carlo parts." 2019.
 | |
| .. [2] Niederreiter, Harald. "Random number generation and quasi-Monte Carlo
 | |
|    methods." Society for Industrial and Applied Mathematics, 1992.
 | |
| .. [3] Dick, Josef, Frances Y. Kuo, and Ian H. Sloan. "High-dimensional
 | |
|    integration: the quasi-Monte Carlo way." Acta Numerica no. 22: 133, 2013.
 | |
| .. [4] Aho, A. V., C. Aistleitner, T. Anderson, K. Appel, V. Arnol'd, N.
 | |
|    Aronszajn, D. Asotsky et al. "W. Chen et al.(eds.), "A Panorama of
 | |
|    Discrepancy Theory", Sringer International Publishing,
 | |
|    Switzerland: 679, 2014.
 | |
| .. [5] Hickernell, Fred J. "Koksma-Hlawka Inequality." Wiley StatsRef:
 | |
|    Statistics Reference Online, 2014.
 | |
| .. [6] Owen, Art B. "On dropping the first Sobol' point." :arxiv:`2008.08051`,
 | |
|    2020.
 | |
| .. [7] L'Ecuyer, Pierre, and Christiane Lemieux. "Recent advances in randomized
 | |
|    quasi-Monte Carlo methods." In Modeling uncertainty, pp. 419-474. Springer,
 | |
|    New York, NY, 2002.
 | |
| .. [8] DiCiccio, Thomas J., and Bradley Efron. "Bootstrap confidence
 | |
|    intervals." Statistical science: 189-212, 1996.
 | |
| .. [9] Dimov, Ivan T. "Monte Carlo methods for applied scientists." World
 | |
|    Scientific, 2008.
 | |
| .. [10] Caflisch, Russel E., William J. Morokoff, and Art B. Owen. "Valuation
 | |
|    of mortgage backed securities using Brownian bridges to reduce effective
 | |
|    dimension." Journal of Computational Finance: no. 1 27-46, 1997.
 | |
| .. [11] Sloan, Ian H., and Henryk Wozniakowski. "When are quasi-Monte Carlo
 | |
|    algorithms efficient for high dimensional integrals?." Journal of Complexity
 | |
|    14, no. 1 (1998): 1-33.
 | |
| .. [12] Owen, Art B., and Daniel Rudolf, "A strong law of large numbers for
 | |
|    scrambled net integration." SIAM Review, to appear.
 | |
| .. [13] Loh, Wei-Liem. "On the asymptotic distribution of scrambled net
 | |
|    quadrature." The Annals of Statistics 31, no. 4: 1282-1324, 2003.
 | |
| .. [14] Sloan, Ian H. and S. Joe. "Lattice methods for multiple integration."
 | |
|    Oxford University Press, 1994.
 | |
| .. [15] Dick, Josef, and Friedrich Pillichshammer. "Digital nets and sequences:
 | |
|    discrepancy theory and quasi-Monte Carlo integration." Cambridge University
 | |
|    Press, 2010.
 | |
| .. [16] Dick, Josef, F. Kuo, Friedrich Pillichshammer, and I. Sloan.
 | |
|    "Construction algorithms for polynomial lattice rules for multivariate
 | |
|    integration." Mathematics of computation 74, no. 252: 1895-1921, 2005.
 | |
| .. [17] Sobol', Il'ya Meerovich. "On the distribution of points in a cube and
 | |
|    the approximate evaluation of integrals." Zhurnal Vychislitel'noi Matematiki
 | |
|    i Matematicheskoi Fiziki 7, no. 4: 784-802, 1967.
 | |
| .. [18] Halton, John H. "On the efficiency of certain quasi-random sequences of
 | |
|    points in evaluating multi-dimensional integrals." Numerische Mathematik 2,
 | |
|    no. 1: 84-90, 1960.
 | |
| .. [19] Faure, Henri. "Discrepance de suites associees a un systeme de
 | |
|    numeration (en dimension s)." Acta arithmetica 41, no. 4: 337-351, 1982.
 | |
| .. [20] Niederreiter, Harold, and Chaoping Xing. "Low-discrepancy sequences and
 | |
|    global function fields with many rational places." Finite Fields and their
 | |
|    applications 2, no. 3: 241-273, 1996.
 | |
| .. [21] Hong, Hee Sun, and Fred J. Hickernell. "Algorithm 823: Implementing
 | |
|    scrambled digital sequences." ACM Transactions on Mathematical Software
 | |
|    (TOMS) 29, no. 2: 95-109, 2003.
 | |
| .. [22] Dick, Josef. "Higher order scrambled digital nets achieve the optimal
 | |
|    rate of the root mean square error for smooth integrands." The Annals of
 | |
|    Statistics 39, no. 3: 1372-1398, 2011.
 | |
| .. [23] Niederreiter, Harald. "Multidimensional numerical integration using
 | |
|    pseudorandom numbers." In Stochastic Programming 84 Part I, pp. 17-38.
 | |
|    Springer, Berlin, Heidelberg, 1986.
 | |
| .. [24] Hickernell, Fred J. "Obtaining O (N-2+e) Convergence for Lattice
 | |
|    Quadrature Rules." In Monte Carlo and Quasi-Monte Carlo Methods 2000,
 | |
|    pp. 274-289. Springer, Berlin, Heidelberg, 2002.
 | |
| .. [25] Owen, Art B., and Seth D. Tribble. "A quasi-Monte Carlo Metropolis
 | |
|    algorithm." Proceedings of the National Academy of Sciences 102,
 | |
|    no. 25: 8844-8849, 2005.
 | |
| .. [26] Chen, Su. "Consistency and convergence rate of Markov chain quasi Monte
 | |
|    Carlo with examples." PhD diss., Stanford University, 2011.
 | |
| .. [27] Joe, Stephen, and Frances Y. Kuo. "Constructing Sobol sequences with
 | |
|    better two-dimensional projections." SIAM Journal on Scientific Computing
 | |
|    30, no. 5: 2635-2654, 2008.
 | |
| 
 | |
| """
 | |
| from ._qmc import *  # noqa: F403
 | |
| from ._qmc import __all__  # noqa: F401
 |