bayesPhat: Baysian estimation to binomial proportion using a conjugate...

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/bayesPhat.r

Description

This routine assumes a beta(a,b) prior for a binomial proportion and computes posterior point and inteval estimates for the proportion given an observed number of 'successes' and number of 'trials'.

Usage

1
bayesPhat(x, n, a = 0.5, b = 0.5, conf = 0.9, ci = "eq")

Arguments

x

The number of 'successes' (an integer vector)

n

The number of 'trials' (an integer vector)

a

A vector of shape parameters to specify the beta prior

b

A vector of scale parameters to specify the beta prior

conf

A scalar specifying the desired confidence level of the interval estimate. This scalar should be between 0.5 and 1.

ci

A character string specifying the type of posterior confidence interval to compute. A value of 'eq' computes posterior intervals with equal area in both tails. A value of 'hdi' computes highest density interval estimates. See Details.

Details

Computations are elementary because the beta(a,b) prior is conjugate for the binomial. Nearly every text on Bayesian estimation shows that given values for x, n, a, and b, the posterior distribution of p is,

beta(x+a, n-x+b).

Hence, the Bayes point estimator is,

phat = (x+a) / (n+a+b),

which is the mean of the posterior. Standard error of the posterior is,

se.phat=sqrt(a*b/((a+b)^2*(a+b+1))).

If a>1 and b>1, mode of the posterior for p is,

(a-1)/(a+b-2).

Confidence intervals can be computed two ways. The default, ci='eq', puts (1-conf)/2 probability in the lower tail and (1-conf)/2 in the upper tail. That is, the lower limit is qbeta((1-conf)/2,x+a,n-x+b) and the upper limit is qbeta(1-(1-conf)/2,x+a,n-x+b). If ci='hdi', this routine finds the interval [l,u] such that pbeta(u,x+a,n-x+b) - pbeta(l,x+a,n-x+b) and dbeta(u,x+a,n-x+b) = dbeta(l,x+a,n-x+b).

The default values for a and b imply use of the Jeffery's prior. The Jeffery's prior is proportional to the root of Fisher's information and is equal to beta(0.5,0.5). A flat prior is beta(1,1).

Value

A data frame with number of rows equal to max(length(x), length(n), length(a), length(b) containing the Baysian point and interval estimates. The data frame has the following columns:

  1. phat : the Bayes point estimates equal to the mean of the posterior distribution.

  2. phat.mode : if a>1 and b>1, this column contains the mode of the posterior. If either a<=1 or b<=1, the posterior is either multi-modal or its mode is infinity. In this case, phat.mode = NA.

  3. se.phat : the standard error of the posterior distribution.

  4. ll.phat : the lower limit of a 100*(1-(1-conf)/2) posterior confidence interval for phat. See Details for interpretation under the allowed values of ci.

  5. ul.phat : the upper limit of a 100*(1-(1-conf)/2) posterior confidence interval for phat. See Details for interpretation under the allowed values of ci.

Author(s)

Trent McDonald

See Also

agrestiCoullPhat

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
bayesPhat(0:5, 100, 0.5, 0.5)  # Jeffery's prior
bayesPhat(0:5, 100, 1, 1) # flat prior

# When prior data is available:
x.prior <- 5
n.prior <- 100
bayesPhat(0:5, 100, x.prior+0.5, n.prior-x.prior+0.5)

# Simulation: point est bias and ci coverage
trueP <- 0.01
n <- 1000
x <- rbinom( 1000, n, trueP)
baPhat <- bayesPhat( x, n )
muBA <- mean(baPhat$phat)
covBA <- mean(baPhat$ll.phat <= trueP & trueP <= baPhat$ul.phat)
baStats <- c(mean=muBA,
             relBias = abs(muBA-trueP)/trueP),
             coverage = covBA)

tmcd82070/evoab documentation built on May 13, 2020, 11:25 p.m.