Slice sampler
rnd = slicesample(initial,nsamples,'pdf',pdf)
rnd = slicesample(initial,nsamples,'logpdf',logpdf)
[rnd,neval]
= slicesample(initial,...)
[rnd,neval]
= slicesample(initial,...,Name,Value)
generates rnd
= slicesample(initial
,nsamples
,'pdf',pdf
)nsamples
random
samples using the slice sampling method (see Algorithms). pdf
gives the target probability
density function (pdf). initial
is a row vector
or scalar containing the initial value of the random sample sequences.
generates
samples using the logarithm of the pdf.rnd
= slicesample(initial
,nsamples
,'logpdf',logpdf
)
[
returns
the average number of function evaluations that occurred in the slice
sampling.rnd
,neval
]
= slicesample(initial
,...)
[
generates
random samples with additional options specified by one or more rnd
,neval
]
= slicesample(initial
,...,Name,Value
)Name,Value
pair
arguments.

Initial point, a scalar or row vector. Set 

Positive integer, the number of samples that 

Handle to a function that generates the probability density
function, specified with 

Handle to a function that generates the logarithm of the probability
density function, specified with 
Specify optional
commaseparated pairs of Name,Value
arguments. Name
is
the argument name and Value
is the corresponding value.
Name
must appear inside single quotes (' '
). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN
.

Nonnegative integer, the number of samples to generate and discard
before generating the samples to return. The slice sampling algorithm
is a Markov chain whose stationary distribution is proportional to
that of the Default: 

Positive integer, where Default: 

Width of the interval around the current sample, a scalar or
vector of positive values.
Default: 



Scalar, the mean number of function evaluations per sample.

There are no definitive suggestions for choosing appropriate
values for burnin
, thin
, or width
.
Choose starting values of burnin
and thin
,
and increase them, if necessary, to give the requisite independence
and marginal distributions. See Neal [1] for details of the effect of adjusting width
.
At each point in the sequence of random samples, slicesample
selects
the next point by “slicing” the density to form a neighborhood
around the previous point where the density is above some value. Consequently,
the sample points are not independent. Nearby points in the sequence
tend to be closer together than they would be from a sample of independent
values. For many purposes, the entire set of points can be used as
a sample from the target distribution. However, when this type of
serial correlation is a problem, the burnin
and thin
parameters
can help reduce that correlation.
slicesample
uses the slice sampling algorithm
of Neal [1]. For numerical stability, it converts a pdf
function
into a logpdf
function. The algorithm to resize
the support region for each level, called “steppingout”
and “steppingin,” was suggested by Neal.
[1] Neal, Radford M. Slice Sampling. Ann. Stat. Vol. 31, No. 3, pp. 705–767, 2003. Available at Project Euclid.
mhsample
 rand
 randsample