
Slice sampling is a type of Markov chain Monte Carlo algorithm for pseudorandom number sampling, i.e. for drawing random samples from a statistical distribution. The method is based on the observation that to sample a random variable one can sample uniformly from the region under the graph of its density function.〔Damlen, P., Wakefield, J., & Walker, S. (1999). Gibbs sampling for Bayesian non‐conjugate and hierarchical models by using auxiliary variables. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 61(2), 331344.Chicago〕 To visualize this motivation, imagine printing out a simple bell curve and throwing darts at it. Assume that the darts are uniformly distributed around the board. Now take off all of the darts that are outside the curve (i.e. perform rejection sampling). The xpositions of the remaining darts will be distributed according to the bell curve. This is because there is the most room for the darts to land where curve is highest and thus the probability density is greatest. Slice sampling, in its simplest form, samples uniformly from underneath the curve f(x) without the need to reject any points, as follows: #Choose a starting value x_{0} for which f(x_{0})>0. #Sample a y value uniformly between 0 and f(x_{0}). #Draw a horizontal line across the curve at this y position. #Sample a point (x,y) from the line segments within the curve. #Repeat from step 2 using the new x value. The motivation here is that one way to sample a point uniformly from within an arbitrary curve is first to draw thin uniformheight horizontal slices across the whole curve. Then, we can sample a point within the curve by randomly selecting a slice that falls at or below the curve at the xposition from the previous iteration, then randomly picking an xposition somewhere along the slice. By using the xposition from the previous iteration of the algorithm, in the long run we select slices with probabilities proportional to the lengths of their segments within the curve. Generally, the trickiest part of this algorithm is finding the bounds of the horizontal slice, which involves inverting the function describing the distribution being sampled from. This is especially problematic for multimodal distributions, where the slice may consist of multiple discontiguous parts. It is often possible to use a form of rejection sampling to overcome this, where we sample from a larger slice that is known to include the desired slice in question, and then discard points outside of the desired slice. Note also that this algorithm can be used to sample from the area under ''any'' curve, regardless of whether the function integrates to 1. In fact, scaling a function by a constant has no effect on the sampled xpositions. This means that the algorithm can be used to sample from a distribution whose probability density function is only known up to a constant (i.e. whose normalizing constant is unknown), which is common in computational statistics. ==Implementation== Slice sampling gets its name from the first step: defining a ''slice'' by sampling from an auxiliary variable $Y$. This variable is sampled from $(f(x))$, where $f(x)$ is either the probability density function (pdf) of ''X'' or is at least proportional to its pdf. This defines a slice of ''X'' where $f(x)\; >\; Y$. In other words, we are now looking at a region of ''X'' where the probability density is at least $Y$. Then the next value of ''X'' is sampled uniformly from this slice. A new value of $Y$ is sampled, then ''X'', and so on. This can be visualized as alternatively sampling the yposition and then the xposition of points under pdf, thus the ''X''s are from the desired distribution. The $Y$ values have no particular consequences or interpretations outside of their usefulness for the procedure. If both the pdf and its inverse are available, and the distribution is unimodal, then finding the slice and sampling from it are simple. If not, a steppingout procedure can be used to find a region whose endpoints fall outside the slice. Then, a sample can be drawn from the slice using rejection sampling. Various procedures for this are described in detail by Neal.〔 Note that, in contrast to many available methods for generating random numbers from nonuniform distributions, random variates generated directly by this approach will exhibit serial statistical dependence. This is because to draw the next sample, we define the slice based on the value of f(x) for the current sample. 抄文引用元・出典: フリー百科事典『 ウィキペディア（Wikipedia）』 ■ウィキペディアで「Slice sampling」の詳細全文を読む スポンサード リンク
