Binomial sampling with a discrete prior
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
binodp(x, n, pi = NULL, pi.prior = NULL, n.pi = 10, ...)
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.prior |
the associated prior probability mass. |
n.pi |
the number of possible pi values in the prior |
... |
additional arguments that are passed to |
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 |
## 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"))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.