pNull {Bolstad2} | R Documentation |
Calculates the probability of a one sided null hypothesis from a numerically calculated posterior CDF or from a sample from the posterior.
pNull(theta0, theta, cdf = NULL, type = 'upper')
theta0 |
the hypothesized value, i.e. H0: theta <= theta0 |
theta |
a sample of values from the posterior density, or, if cdf is not NULL then the values over which the the posterior CDF is specified |
cdf |
the values of the CDF, F(theta) = int_{-infty}^{theta}f(t).df where f(t) is the PDF. |
type |
the type of probability to return, 'lower' = Pr(theta <= theta0) or 'upper' = Pr(theta >= theta0). It is sufficient to use 'l' or 'u' |
This function uses linear interpolation to calculate bounds for points that may not be specified by CDF
a list containing the element prob which will be the upper or lower tail probability depending on type
## commands for calculating a numerical posterior CDF. ## In this example, the likelihood is proportional to ## \eqn{\theta^{3/2}\times \exp(-\theta/4)} and a N(6, 9) prior is used. theta <- seq(from = 0.001, to = 40, by = 0.001) prior <- dnorm(theta,6,3) ppnLike <- theta^1.5*exp(-theta/4) ppnPost <- prior*ppnLike scaleFactor <- sintegral(theta, ppnPost)$int posterior <- ppnPost/scaleFactor cdf <- sintegral(theta, posterior)$y pNull(15, theta, cdf) ## Use an inverse method to take a random sample of size 1000 ## from the posterior suppressWarnings(Finv <- approxfun(cdf, theta)) thetaSample<-Finv(runif(1000)) pNull(15, thetaSample)