Propose points using a modified version
of the No-Underrun Sampler (NURS), a gradient-free variant of the No-U-Turn
Sampler (NUTS). Samples are generated by defining a line through an initial
live point and drawing candidates from a lattice along this line.
Arguments
- adaptive_scale, fixed_scale
Choose one:
adaptive_scale: Number between 0 and 1. Updates the width of the sampling lattice based on quantiles of inter-point distances.fixed_scale: Positive number. Sets the width of the sampling lattice, which remains constant throughout sampling.
- steps
Positive integer. Number of steps to take when generating a proposal point.
- max_orbits
Positive integer. Controls the maximum size of the orbit lattice built by the sampler (
2 ^ max_orbits).
Value
An object of class c("nurs", "ernest_lrps") for use with
ernest_sampler() to specify sampling behaviour.
Details
The No-Underrun Sampler (NURS) is a gradient-free Markov chain Monte Carlo method, related to both Hit-and-Run and No-U-Turn Samplers. This function adapts NURS for likelihood-restricted prior sampling, ensuring all samples meet a minimum likelihood criterion.
For each steps of the algorithm, we do the following:
From the current live point \(x_0\), sample a direction \(\rho\) from the unit hypersphere, defining a line through \(x_0\).
Propose an initial shift along this line by a distance \(U[-h/2, h/2]\), where \(h\) is the current lattice scale. Accept if the shifted point meets the likelihood criterion \(c\).
Generate an orbit of points around the shifted \(x_0\) as a lattice with spacing \(h\), using a doubling procedure. Stop if (a) the orbit exceeds the unit hypercube, or (b) the recursive condition $$max(l_{left}, l_{right}) < c$$ fails, where \(l_{left}\) and \(l_{right}\) are the likelihoods at the lattice ends.
Randomly select one point from the final lattice as the new live point.
Choose fixed_scale to keep \(h\) constant, or adaptive_scale to update
\(h\) from inter-point distances. See References for details on tuning.
Status
This LRPS is experimental and has not been extensively validated across different nested sampling problems. You are encouraged to use it, but please exercise caution interpretting results and report any issues or unexpected behaviour.
References
Bou-Rabee, N., Carpenter, B., Liu, S., & Oberdörster, S. (2025). The No-Underrun Sampler: A Locally-Adaptive, Gradient-Free MCMC Method (Version 2). arXiv. doi:10.48550/ARXIV.2501.18548
See also
Other ernest_lrps:
mini_balls(),
multi_ellipsoid(),
rwmh_cube(),
slice_rectangle(),
unif_cube(),
unif_ellipsoid()