Bayesian false-discovery probability
This function calculates BFDP, the approximate Pr( H0 | thetahat ), given an estiamte of the log relative risk, thetahat, the variance of this estimate, V, the prior variance, W, and the prior probability of a non-null association. When logscale=TRUE, the function accepts an estimate of the relative risk, RRhat, and the upper point of a 95% confidence interval RRhi.
BFDP(a,b,pi1,W,logscale=FALSE)
a |
parameter value at which the power is to be evaluated |
b |
the variance for a, or the uppoer point (RRhi) of a 95%CI if logscale=FALSE |
pi1 |
the prior probabiility of a non-null association |
W |
the prior variance |
logscale |
FALSE=the orginal scale, TRUE=the log scale |
The returned value is a list with the following components:
PH0 |
probability given a,b) |
PH1 |
probability given a,b,W) |
BF |
Bayes factor, PH0/PH1 |
BFDP |
Bayesian false-discovery probability |
ABF |
approxmiate Bayes factor |
ABFDP |
approximate Bayesian false-discovery probability |
Wakefield J (2007) Bayesian measure of the probability of false discovery in genetic epidemiology studies. Am J Hum Genet 81:208-227
adapted from BFDP functions by Jon Wakefield on 17th April, 2007
Jon Wakefield, Jing Hua Zhao
## Not run: # Example from BDFP.xls by Jon Wakefield and Stephanie Monnier # Step 1 - Pre-set an BFDP-level threshold for noteworthiness: BFDP values below this # threshold are noteworthy # The threshold is given by R/(1+R) where R is the ratio of the cost of a false # non-discovery to the cost of a false discovery T <- 0.8 # Step 2 - Enter up values for the prior that there is an association pi0 <- c(0.7,0.5,0.01,0.001,0.00001,0.6) # Step 3 - Enter the value of the OR that is the 97.5% point of the prior, for example # if we pick the value 1.5 we believe that the prior probability that the # odds ratio is bigger than 1.5 is 0.025. ORhi <- 3 W <- (log(ORhi)/1.96)^2 W # Step 4 - Enter OR estimate and 95% confidence interval (CI) to obtain BFDP OR <- 1.316 OR_L <- 1.10 OR_U <- 2.50 logOR <- log(OR) selogOR <- (log(OR_U)-log(OR))/1.96 r <- W/(W+selogOR^2) r z <- logOR/selogOR z ABF <- exp(-z^2*r/2)/sqrt(1-r) ABF FF <- (1-pi0)/pi0 FF BFDPex <- FF*ABF/(FF*ABF+1) BFDPex pi0[BFDPex>T] ## now turn to BFDP pi0 <- c(0.7,0.5,0.01,0.001,0.00001,0.6) ORhi <- 3 OR <- 1.316 OR_U <- 2.50 W <- (log(ORhi)/1.96)^2 z <- BFDP(OR,OR_U,pi0,W) z
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.