HPDregionplot: Plot highest posterior density region

View source: R/bayes.R

HPDregionplotR Documentation

Plot highest posterior density region

Description

Given a sample from a posterior distribution (an mcmc object from the coda package), plot the bivariate region of highest marginal posterior density for two variables, using kde2d from MASS to calculate a bivariate density.

Usage

HPDregionplot(x, vars = 1:2, h, n = 50, lump = TRUE, prob = 0.95, xlab =
NULL, ylab = NULL, lims=NULL, ...)

Arguments

x

an mcmc or mcmc.list object

vars

which variables to plot: numeric or character vector

h

bandwidth of 2D kernel smoother (previous default value was c(1,1), which worked poorly with some plots with very small scales; if not specified, defaults to values in kde2d)

n

number of points at which to evaluate the density grid

lump

if x is an mcmc.list object, lump the chains together for plotting?

prob

probability level

xlab

x axis label

ylab

y axis label

lims

limits, specified as (x.lower,x.upper,y.lower,y.upper) (passed to kde2d)

...

other arguments to contour

Details

Uses kde2d to calculate a bivariate density, then normalizes the plot and calculates the contour corresponding to a contained volume of prob of the total volume under the surface (a two-dimensional Bayesian credible region).

Value

Draws a plot on the current device, and invisibly returns a list of contour lines (contourLines).

Note

Accuracy may be limited by density estimation; you may need to tinker with h and n (see kde2d in the MASS package).

Author(s)

Ben Bolker

See Also

HPDinterval in the coda package, ellipse package

Examples

library(MASS)
library(coda)
z <- mvrnorm(1000,mu=c(0,0),Sigma=matrix(c(2,1,1,2),nrow=2))
z2 <- mvrnorm(1000,mu=c(0,0),Sigma=matrix(c(2,1,1,2),nrow=2))
HPDregionplot(mcmc(z))
HPDregionplot(mcmc.list(mcmc(z),mcmc(z2)))

emdbook documentation built on July 9, 2023, 6:33 p.m.