Learn R Programming

rstantools (version 1.5.0)

posterior_interval: Generic function and default method for posterior uncertainty intervals

Description

These intervals are often referred to as credible intervals, but we use the term uncertainty intervals to highlight the fact that wider intervals correspond to greater uncertainty. See posterior_interval.stanreg in the rstanarm package for an example.

Usage

posterior_interval(object, ...)

# S3 method for default posterior_interval(object, prob = 0.9, ...)

Arguments

object

The object to use.

...

Arguments passed to methods. See the methods in the rstanarm package for examples.

prob

A number \(p \in (0,1)\) indicating the desired probability mass to include in the intervals.

Value

posterior_interval methods should return a matrix with two columns and as many rows as model parameters (or a subset of parameters specified by the user). For a given value of prob, \(p\), the columns correspond to the lower and upper \(100p\)% interval limits and have the names \(100\alpha/2\)% and \(100(1 - \alpha/2)\)%, where \(\alpha = 1-p\). For example, if prob=0.9 is specified (a \(90\)% interval), then the column names would be "5%" and "95%", respectively.

The default method just takes object to be a matrix (one column per parameter) and computes quantiles, with prob defaulting to 0.9.

See Also

  • Guidelines and recommendations for developers of R packages interfacing with Stan and a demonstration getting a simple package working can be found in the vignettes included with rstantools and at http://mc-stan.org/rstantools/articles/.

Examples

Run this code
# NOT RUN {
# Default method takes a numeric matrix (of posterior draws)
draws <- matrix(rnorm(100 * 5), 100, 5) # fake draws
colnames(draws) <- paste0("theta_", 1:5)
posterior_interval(draws)

# Example using rstanarm package:
# posterior_interval method for 'stanreg' objects
# }
# NOT RUN {
if (require("rstanarm")) {
  fit <- stan_glmer(
    mpg ~ wt + am + (1|cyl),
    data = mtcars,
    QR = TRUE,
    prior = normal(0, 1),
    iter = 500 # to speed up example
  )
  rstanarm::posterior_interval(fit, prob = 0.5)
}
# }
# NOT RUN {
# Also see help("posterior_interval", package = "rstanarm")

# }

Run the code above in your browser using DataLab