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.

posterior_interval(object, ...)

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



The object to use.


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


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


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\)\

have the names \(100\alpha/2\)\

\(\alpha = 1-p\). For example, if prob=0.9 is specified (a \(90\)\

"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


# Default method takes a numeric matrix (of posterior draws)
draws <- matrix(rnorm(100 * 5), 100, 5) # fake draws
colnames(draws) <- paste0("theta_", 1:5)
#>                5%      95%
#> theta_1 -1.522094 1.446084
#> theta_2 -1.758634 1.537318
#> theta_3 -2.193129 1.443288
#> theta_4 -1.850556 1.512496
#> theta_5 -1.844814 2.031578

# Also see help("posterior_interval", package = "rstanarm")