Learn R Programming

fbst (version 2.2)

fbet: fbet

Description

The function computes the Full Bayesian Evidence Test (FBST) and the Bayesian evidence value (the generalized e-value which obtains the e-value of the FBST as a special case), which is the Bayesian evidence against an interval null hypothesis. The function assumes posterior MCMC draws and constructs a posterior density based on a kernel density estimator subsequently. The Bayesian evidence interval is computed using a linear search based on the evidence-threshold and the calculation of the Bayesian evidence value is performed using numerical integration.

Usage

fbet(posteriorDensityDraws=NULL, interval, nu=1, FUN=NULL, 
par=NULL, posterior=NULL, par_posterior=NULL)

Value

Returns an object of class fbet if posteriorDensityDraws are provided. When using the posterior argument to pass the posterior as a function, it provides the evidence value for the hypothesis specified in the interval argument.

Arguments

posteriorDensityDraws

Vector of MCMC posterior parameter draws

interval

Vector of two numerical values containing the boundaries of the interval null hypothesis to be tested

nu

Numerical value which provides the evidence-threshold based on which the Bayesian evidence interval is calculated

FUN

Reference function

par

Additional parameters of the reference function

posterior

Posterior density function

par_posterior

Additional parameters of the posterior density function

Author

Riko Kelter

Details

If no reference function is specified, a flat reference function \(r(\theta)=1\) is used as default reference function when posteriorDensityDraws are provided.

References

For a details, see: https://arxiv.org/abs/2001.10577.

Examples

Run this code
set.seed(57)
grp1=rnorm(50,0,1.5)
grp2=rnorm(50,0.3,3.2)

p = as.vector(BayesFactor::ttestBF(x=grp1,y=grp2, 
  posterior = TRUE, iterations = 3000, 
  rscale = "medium")[,4])

# flat reference function, nu = 0
res = fbet(p, interval = c(-0.1,0.1), nu=0, FUN=NULL, par=NULL)
summary(res)
plot(res)

# flat reference function, nu = 1
res = fbet(p, interval = c(-0.1,0.1), nu=1, FUN=NULL, par=NULL)
summary(res)
plot(res)

# medium Cauchy C(0,1) reference function, nu = 1
res_med = fbet(posteriorDensityDraws = p, interval = c(-0.1,0.1), nu = 1, 
FUN = dcauchy, par = list(location = 0, scale=sqrt(2)))
summary(res_med)
plot(res_med)

# posterior as function argument
fbet(posterior=dbeta, par_posterior = list(shape1 = 3, shape2 = 4), 
interval = c(0.2,1), nu = 1, FUN=dbeta, par = list(shape1 = 1, shape2 = 1))

Run the code above in your browser using DataLab