This package implements slice sampling algorithms accessible through the AbstractMCMC
interface.
For general usage, please refer to here.
- Univariate slice sampling (Slice) algorithms by R. Neal 1:
- Fixed window
- stepping-out window adaptation
- doubling-out window adaptation
- Latent slice sampling (LSS) by Li and Walker4
- Gibbsian polar slice sampling (GPSS) by P. Schär, M. Habeck, and D. Rudolf5.
This package supports the Turing probabilistic programming framework:
using Distributions
using Turing
using SliceSampling
@model function demo()
s ~ InverseGamma(3, 3)
m ~ Normal(0, sqrt(s))
end
sampler = RandPermGibbs(SliceSteppingOut(2.))
n_samples = 10000
model = demo()
sample(model, externalsampler(sampler), n_samples; initial_params=[exp(1.0), 0.0])
Footnotes
-
Neal, R. M. (2003). Slice sampling. The annals of statistics, 31(3), 705-767. ↩
-
Geman, S., & Geman, D. (1984). Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images. IEEE Transactions on Pattern Analysis and Machine Intelligence, (6). ↩
-
Bélisle, C. J., Romeijn, H. E., & Smith, R. L. (1993). Hit-and-run algorithms for generating multivariate distributions. Mathematics of Operations Research, 18(2), 255-266. ↩
-
Li, Y., & Walker, S. G. (2023). A latent slice sampling algorithm. Computational Statistics & Data Analysis, 179, 107652. ↩
-
Schär, P., Habeck, M., & Rudolf, D. (2023, July). Gibbsian polar slice sampling. In International Conference on Machine Learning. ↩