binogcp {Bolstad} | R Documentation |
Binomial sampling with a general continuous prior
Description
Evaluates and plots the posterior density for \pi
, the probability
of a success in a Bernoulli trial, with binomial sampling and a general
continuous prior on \pi
Usage
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 |
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 |
Value
A list will be returned with the following components:
likelihood |
the scaled likelihood function for |
posterior |
the posterior probability of
|
pi |
the vector of possible
|
pi.prior |
the associated
probability mass for the values in |
See Also
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 = ""))