Learn R Programming

Bolstad (version 0.2-41)

binodp: Binomial sampling with a discrete prior

Description

Evaluates and plots the posterior density for \(\pi\), the probability of a success in a Bernoulli trial, with binomial sampling and a discrete prior on \(\pi\)

Usage

binodp(x, n, pi = NULL, pi.prior = NULL, n.pi = 10, ...)

Arguments

x

the number of observed successes in the binomial experiment.

n

the number of trials in the binomial experiment.

pi

a vector of possibilities for the probability of success in a single trial. if pi is NULL then a discrete uniform prior for \(\pi\) will be used.

pi.prior

the associated prior probability mass.

n.pi

the number of possible \(\pi\) values in the prior

additional arguments that are passed to Bolstad.control

Value

A list will be returned with the following components:

pi

the vector of possible \(\pi\) values used in the prior

pi.prior

the associated probability mass for the values in \(\pi\)

likelihood

the scaled likelihood function for \(\pi\) given \(x\) and \(n\)

posterior

the posterior probability of \(\pi\) given \(x\) and \(n\)

f.cond

the conditional distribution of \(x\) given \(\pi\) and \(n\)

f.joint

the joint distribution of \(x\) and \(\pi\) given \(n\)

f.marg

the marginal distribution of \(x\)

See Also

binobp binogcp

Examples

Run this code
# NOT RUN {
## simplest call with 6 successes observed in 8 trials and a uniform prior
binodp(6,8)

## same as previous example but with more possibilities for pi
binodp(6, 8, n.pi = 100)

## 6 successes, 8 trials and a non-uniform discrete prior
pi = seq(0, 1, by = 0.01)
pi.prior = runif(101)
pi.prior = sort(pi.prior / sum(pi.prior))
binodp(6, 8, pi, pi.prior)

## 5 successes, 6 trials, non-uniform prior
pi = c(0.3, 0.4, 0.5)
pi.prior = c(0.2, 0.3, 0.5)
results = binodp(5, 6, pi, pi.prior)

## plot the results from the previous example using a side-by-side barplot
results.matrix = rbind(results$pi.prior,results$posterior)
colnames(results.matrix) = pi
barplot(results.matrix, col = c("red", "blue"), beside = TRUE,
	      xlab = expression(pi), ylab=expression(Probability(pi)))
box()
legend("topleft", bty = "n", cex = 0.7, 
       legend = c("Prior", "Posterior"), fill = c("red", "blue"))

# }

Run the code above in your browser using DataLab