metaBMA (version 0.6.1)

prior: Prior Distribution

Description

Defines a prior distribution/probability density function for the average effect size \(d\) or for the heterogeneity of effect sizes \(\tau\).

Usage

prior(family, param, lower, upper, label = "d",
  rel.tol = .Machine$double.eps^0.5)

Arguments

family

a character value defining the distribution family.

param

numeric parameters for the distribution. See details for the definition of the parameters of each family.

lower

lower boundary for truncatation of prior density. If family="beta", the interval [0,1] is rescaled to the interval [lower,upper]. Must be specified if family = "custom".

upper

See lower.

label

optional: parameter label.

rel.tol

relative tolerance used for integrating the density of family="custom".

Value

an object of the class prior: a density function with the arguments x (parameter values) and log (whether to return density or log-density).

Details

The following prior distributions are currently implemented:

  • "norm": Normal distribution with param = c(mean, sd) (see Normal).

  • "t": Student t distribution with param = c(location, scale, nu) (see dist.Student.t). Note that a Cauchy distribution is defined by setting the degrees of freedom nu=1.

  • "invgamma": Inverse gamma distribution with param = c(shape, scale) (see dist.Inverse.Gamma).

  • "beta": (Scaled) beta distribution with param = c(shape1, shape2) (see Beta).

  • "custom": User-specified prior density function defined by param (see examples; the density must be nonnegative and vectorized, but is normalized internally). Integration is performed from (-Inf, Inf), which requires that the function returns zeros (and not NAs) for values not in the support of the distribution.

Examples

Run this code
# NOT RUN {
### Half-Normal Distribution
p1 <- prior("norm", c(mean=0, sd=.3), lower = 0)
p1
p1(c(-1,1,3))
plot(p1, -.1, 1)

### Half-Cauchy Distribution
p2 <- prior("t", c(location = 0, scale = .3, nu = 1), lower = 0)
plot(p2, -.5, 3)

### Custom Prior Distribution
p3 <- prior("custom", function(x) x^2, 0, 1)
plot(p3, -.1, 1.2)

# }

Run the code above in your browser using DataLab