kernel_normal {fmcmc} | R Documentation |
Gaussian Transition Kernel
Description
Gaussian Transition Kernel
Usage
kernel_normal(mu = 0, scale = 1, fixed = FALSE, scheme = "joint")
kernel_normal_reflective(
mu = 0,
scale = 1,
lb = -.Machine$double.xmax,
ub = .Machine$double.xmax,
fixed = FALSE,
scheme = "joint"
)
Arguments
mu , scale |
Either a numeric vector or a scalar. Proposal mean and scale. If scalar, values are recycled to match the number of parameters in the objective function. |
fixed , scheme |
For multivariate functions, sets the update plan.
See |
lb , ub |
Either a numeric vector or a scalar. Lower and upper bounds for bounded kernels. When of length 1, the values are recycled to match the number of parameters in the objective function. |
Details
The kernel_normal
function provides the canonical normal kernel
with symmetric transition probabilities.
The kernel_normal_reflective
implements the normal kernel with reflective
boundaries. Lower and upper bounds are treated using reflecting boundaries, this is,
if the proposed \theta'
is greater than the ub
, then \theta' - ub
is subtracted from ub
. At the same time, if it is less than lb
, then
lb - \theta'
is added to lb
iterating until \theta
is within
[lb, ub]
.
In this case, the transition probability is symmetric (just like the normal kernel).
Value
An object of class fmcmc_kernel. fmcmc_kernel
objects are intended
to be used with the MCMC()
function.
See Also
Other kernels:
kernel_adapt()
,
kernel_mirror
,
kernel_new()
,
kernel_ram()
,
kernel_unif()
Examples
# Normal kernel with a small scale (sd) of 0.05
kern <- kernel_normal(scale = 0.05)
# Using boundaries for the second parameter of a two parameter chain
# to have values in [0, 100].
kern <- kernel_normal_reflective(
ub = c(.Machine$double.xmax, 100),
lb = c(-.Machine$double.xmax, 0)
)