Learn R Programming

fmcmc (version 0.5-2)

kernel_normal: 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" )

Value

An object of class fmcmc_kernel. fmcmc_kernel objects are intended to be used with the MCMC() function.

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 plan_update_sequence().

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).

See Also

Other kernels: kernel_adapt(), kernel_mirror, kernel_new(), kernel_ram(), kernel_unif()

Examples

Run this code
# 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)
  )

Run the code above in your browser using DataLab