Learn R Programming

BEST (version 0.5.3)

plotPost: Graphic display of a posterior probability distribution

Description

Plot the posterior probability distribution for a single parameter from a vector of samples, typically from an MCMC process, with appropriate summary statistics.

Usage

plotPost(paramSampleVec, credMass = 0.95, compVal = NULL, ROPE = NULL,
  HDItextPlace = 0.7, showMode = FALSE, showCurve = FALSE, ...)

Arguments

paramSampleVec

A vector of samples drawn from the target distribution.

credMass

the probability mass to include in credible intervals, or NULL to suppress plotting of credible intervals.

compVal

a value for comparison with those plotted.

ROPE

a two element vector, such as c(-1, 1), specifying the limits of the Region Of Practical Equivalence.

HDItextPlace

a value in [0,1] that controls the horizontal position of the labels at the ends of the HDI bar.

showMode

logical: if TRUE, the mode is displayed instead of the mean.

showCurve

logical: if TRUE, the posterior density will be represented by a kernel density function instead of a histogram.

graphical parameters and the breaks parameter for the histogram.

Value

Returns an object of class histogram invisibly. Used for its plotting side-effect.

Details

The data are plotted either as a histogram (above) or, if showCurve = TRUE, as a fitted kernel density curve (below). Either the mean or the mode of the distribution is displayed, depending on the parameter showMode. The Highest Density Interval (HDI) is shown as a horizontal bar, with labels for the ends of the interval.

If values for a ROPE are supplied, these are shown as dark red vertical dashed lines, together with the percentage of probability mass within the ROPE. If a comparison value (compVal) is supplied, this is shown as a vertical green dotted line, together with the probability mass below and above this value.

See Also

For details of the HDI calculation, see hdi.

Examples

Run this code
# NOT RUN {
# Generate some data
tst <- rnorm(1e5, 3, 1)
plotPost(tst)
plotPost(tst, col='wheat', border='magenta')
plotPost(tst, credMass=0.8, ROPE=c(-1,1), xlab="Response variable")
plotPost(tst, showMode=TRUE, showCurve=TRUE, compVal=5.5)

# For integers:
tst <- rpois(1e5, 12)
plotPost(tst)

# A severely bimodal distribution:
tst2 <- c(rnorm(1e5), rnorm(5e4, 7))
plotPost(tst2)                  # A valid 95% CrI, but not HDI
plotPost(tst2, showCurve=TRUE)  # Correct 95% HDI

# }

Run the code above in your browser using DataLab