abf.normal: Calculate approximate Bayes factor (ABF) for normal prior.

Description Usage Arguments Details Value Author(s) Examples

View source: R/abf.R

Description

Calculates an approximation to the Bayes Factor for an alternative model where the parameter beta is a priori normal, against a smaller model where beta is zero, by approximating the likelihood function with a normal distribution.

Usage

1
abf.normal(beta, se, priorscale, gridrange = 3, griddensity = 20)

Arguments

beta

Vector of effect size estimates.

se

Vector of associated standard errors.

priorscale

Scalar specifying the scale (standard deviation) of the prior on true effect sizes.

gridrange

Parameter controlling range of grid for numerical integration.

griddensity

Parameter controlling density of points in grid for numerical integration.

Details

This uses the same normal approximation for the likelihood function as “Bayes factors for genome-wide association studies: comparison with P-values” by John Wakefield, 2009, Genetic Epidemiology 33(1):79-86 at http://dx.doi.org/10.1002/gepi.20359. In that work, an analytical expression for the approximate Bayes factor was derived, which is implemented in abf.Wakefield. This function uses a numerical algorithm to calculate the (approximate) Bayes factor, which may be a useful starting point if one wishes to change the assumptions so that the analytical expression of Wakefield (2009) no longer applies (as in abf.t).

Value

A vector of approximate Bayes factors.

Author(s)

Toby Johnson Toby.x.Johnson@gsk.com

Examples

1
2
3
4
5
6
data(agtstats)
agtstats$pval <- with(agtstats, pchisq((beta/se.GC)^2, df = 1, lower.tail = FALSE))
max1 <- function(bf) return(bf/max(bf, na.rm = TRUE))
agtstats$BF.normal <- with(agtstats, max1(abf.Wakefield(beta, se.GC, 0.05)))
agtstats$BF.numeric <- with(agtstats, max1(abf.normal(beta, se.GC, 0.05)))
with(agtstats, plot(BF.normal, BF.numeric)) # excellent agreement

tobyjohnson/gtx documentation built on Aug. 30, 2019, 8:07 p.m.