binogcp function

Binomial sampling with a general continuous prior

Binomial sampling with a general continuous prior

Evaluates and plots the posterior density for pipi, the probability of a success in a Bernoulli trial, with binomial sampling and a general continuous prior on pipi

binogcp( x, n, density = c("uniform", "beta", "exp", "normal", "user"), params = c(0, 1), n.pi = 1000, pi = NULL, pi.prior = NULL, ... )

Arguments

  • x: the number of observed successes in the binomial experiment.
  • n: the number of trials in the binomial experiment.
  • density: may be one of "beta", "exp", "normal", "student", "uniform" or "user"
  • params: if density is one of the parameteric forms then then a vector of parameters must be supplied. beta: a, b exp: rate normal: mean, sd uniform: min, max
  • n.pi: the number of possible pipi values in the prior
  • pi: a vector of possibilities for the probability of success in a single trial. This must be set if density = "user".
  • pi.prior: the associated prior probability mass. This must be set if density = "user".
  • ...: additional arguments that are passed to Bolstad.control

Returns

A list will be returned with the following components: - likelihood: the scaled likelihood function for pipi given xx and nn - posterior: the posterior probability of pipi given xx and nn - pi: the vector of possible pipi values used in the prior - pi.prior: the associated probability mass for the values in pipi

Examples

## simplest call with 6 successes observed in 8 trials and a continuous ## uniform prior binogcp(6, 8) ## 6 successes, 8 trials and a Beta(2, 2) prior binogcp(6, 8,density = "beta", params = c(2, 2)) ## 5 successes, 10 trials and a N(0.5, 0.25) prior binogcp(5, 10, density = "normal", params = c(0.5, 0.25)) ## 4 successes, 12 trials with a user specified triangular continuous prior pi = seq(0, 1,by = 0.001) pi.prior = rep(0, length(pi)) priorFun = createPrior(x = c(0, 0.5, 1), wt = c(0, 2, 0)) pi.prior = priorFun(pi) results = binogcp(4, 12, "user", pi = pi, pi.prior = pi.prior) ## find the posterior CDF using the previous example and Simpson's rule myCdf = cdf(results) plot(myCdf, type = "l", xlab = expression(pi[0]), ylab = expression(Pr(pi <= pi[0]))) ## use the quantile function to find the 95% credible region. qtls = quantile(results, probs = c(0.025, 0.975)) cat(paste("Approximate 95% credible interval : [" , round(qtls[1], 4), " ", round(qtls, 4), "]\n", sep = "")) ## find the posterior mean, variance and std. deviation ## using the output from the previous example post.mean = mean(results) post.var = var(results) post.sd = sd(results) # calculate an approximate 95% credible region using the posterior mean and # std. deviation lb = post.mean - qnorm(0.975) * post.sd ub = post.mean + qnorm(0.975) * post.sd cat(paste("Approximate 95% credible interval : [" , round(lb, 4), " ", round(ub, 4), "]\n", sep = ""))

See Also

binobp binodp

  • Maintainer: James Curran
  • License: GPL (>= 2)
  • Last published: 2024-11-12

Useful links