PlotPriorAndPosterior: Create a prior-posterior plot.

View source: R/PlotPriorAndPosterior.R

PlotPriorAndPosteriorR Documentation

Create a prior-posterior plot.

Description

Create a prior-posterior plot.

Usage

PlotPriorAndPosterior(
  dfLines,
  dfPoints = NULL,
  BF = NULL,
  CRI = NULL,
  median = NULL,
  xName = NULL,
  yName = gettext("Density", domain = "R-jaspGraphs"),
  drawPizzaTxt = !is.null(BF),
  drawCRItxt = !is.null(CRI),
  bfType = c("BF01", "BF10", "LogBF10"),
  hypothesis = c("equal", "smaller", "greater"),
  bfSubscripts = NULL,
  pizzaTxt = hypothesis2BFtxt(hypothesis)$pizzaTxt,
  bty = list(type = "n", ldwX = 0.5, lwdY = 0.5),
  lineColors = NULL,
  CRItxt = "95% CI: ",
  medianTxt = gettext("Median:", domain = "R-jaspGraphs"),
  ...
)

Arguments

dfLines

A dataframe with $x, $y, and optionally $g.

dfPoints

A dataframe with $x, $y, and optionally $g.

BF

Numeric, with value of Bayes factor. This MUST correspond to bfType.

CRI

Numeric of length 2, Credible interval of posterior.

median

Numeric, median of posterior.

xName

String or expression, displayed on the x-axis.

yName

String or expression, displayed on the y-axis.

drawPizzaTxt

Logical, should there be text above and below the pizza plot?

drawCRItxt

Logical, should the credible interval be displayed in text?

bfType

String, what is the type of BF? Options are "BF01", "BF10", or "LogBF10".

hypothesis

String, what was the hypothesis? Options are "equal", "smaller", or "greater".

bfSubscripts

String, manually specify the BF labels.

pizzaTxt

String vector of length 2, text to be drawn above and below pizza plot.

bty

List of three elements. Type specifies the box type, ldwX the width of the x-axis, lwdY the width of the y-axis.

lineColors

NULL to omit line colors, a character vector with colors, or any other value to add color = g to the aesthetics of the main plot.

CRItxt

String, display the credible interval as paste0(CRItxt, "[", lower, ", ", upper, "]").

medianTxt

String, display the median as paste(medianTxt, formatC(median, 3, format = "f")).

...

Unused.

Value

If BF, CRI, and median are all NULL a ggplot, otherwise a gtable.

Examples

n <- 100
x <- seq(-3, 3, length.out = n)
dfLines <- data.frame(
  x = x,
  y = c(dnorm(x, 0, 1), dnorm(x, 1, .5)),
  g = rep(c("Prior", "Posterior"), each = n)
)

PlotPriorAndPosterior(dfLines)
dfPoints <- data.frame(
  x = c(0, 0),
  y = dnorm(0, c(0, 1), c(1, .5)),
  g = c("Prior", "Posterior")
)

PlotPriorAndPosterior(dfLines, dfPoints)

# add BF pizza
BF10 <- dnorm(0, 1, .5) / dnorm(0, 0, 1)
PlotPriorAndPosterior(dfLines, dfPoints, BF10,      bfType = "BF10") # default
PlotPriorAndPosterior(dfLines, dfPoints, 1 / BF10,  bfType = "BF01")
PlotPriorAndPosterior(dfLines, dfPoints, log(BF10), bfType = "LogBF10")

# change hypothesis
PlotPriorAndPosterior(dfLines, dfPoints, BF10, hypothesis = "smaller")
PlotPriorAndPosterior(dfLines, dfPoints, BF10, hypothesis = "greater")

# add credible interval
CRI <- qnorm(c(0.025, 0.975), 1, .5)
PlotPriorAndPosterior(dfLines, dfPoints, CRI = CRI)
PlotPriorAndPosterior(dfLines, dfPoints, CRI = CRI, drawCRItxt = FALSE)

# add median
median <- qnorm(0.5, 1, .5)
PlotPriorAndPosterior(dfLines, dfPoints, median = median)

# or combine them all
PlotPriorAndPosterior(dfLines, dfPoints, BF10, CRI = CRI, median = median)

jasp-stats/jaspGraphs documentation built on April 20, 2024, 4:13 p.m.