Rev Language Reference


mvSlice - Propose a slice move

`mvSlice` proposes a new value for a variable based on the current shape of its likelihood function.

Usage

mvSlice(Real x, RealPos window, Bool tune, RealPos weight, Probability tuneTarget, String search_method)

Arguments

x : Real (<stochastic> pass by reference)
The variable on which this move operates
window : RealPos (pass by value)
The window (steps-size) of proposals.
Default : 1
tune : Bool (pass by value)
Should we tune the move during burnin?
Default : TRUE
weight : RealPos (pass by value)
The weight determines the relative frequency with which this move will be attempted. For details, see the description of the 'moveschedule' parameter on the documentation page for 'mcmc()'.
Default : 1
tuneTarget : Probability (pass by value)
The acceptance probability targeted by auto-tuning.
Default : 0.44
search_method : String (pass by value)
The method used to find the slice boundaries.
Default : doubling
Options : stepping_out|doubling

Details

A slice proposal uses the shape of the current likelihood distribution of a variable to propose a new value. First, a likelihood value is drawn uniformly in order to define a horizontal 'slice' through the likelihood distribution. Then, a new value is drawn uniformly from those values that lie within this slice. This allows parameter space to be traversed more efficiently than a random walk. A practical outcome of the implementation is that small moves are proposed in certain parts of parameter space, and large moves in other parts of the space, as appropriate. A detailed explanation with figures is provided in Neal (2003).

See Also