cwi {bayestestR} R Documentation

## Curvewise Intervals (CWI)

### Description

Compute the Curvewise interval (CWI) (also called the "simultaneous interval" or "joint interval") of posterior distributions using ggdist::curve_interval(). Whereas the more typical "pointwise intervals" contain xx% of the posterior for a single parameter, joint/curvewise intervals contain xx% of the posterior distribution for all parameters.

### Usage

cwi(x, ...)

## S3 method for class 'data.frame'
cwi(x, ci = 0.95, ...)


### Arguments

 x Vector representing a posterior distribution, or a data frame of such vectors. Can also be a Bayesian model. bayestestR supports a wide range of models (see, for example, methods("hdi")) and not all of those are documented in the 'Usage' section, because methods for other classes mostly resemble the arguments of the .numeric or .data.framemethods. ... Currently not used. ci Value or vector of probability of the (credible) interval - CI (between 0 and 1) to be estimated. Default to .95 (⁠95%⁠).

### Details

Applied model predictions, pointwise intervals contain xx% of the predicted response values conditional on specific predictor values. In contrast, curvewise intervals contain xx% of the predicted response values across all predictor values. Put another way, curvewise intervals contain xx% of the full prediction lines from the model.

For more details, see the ggdist documentation on curvewise intervals.

### Value

A data frame with following columns:

• Parameter The model parameter(s), if x is a model-object. If x is a vector, this column is missing.

• CI The probability of the credible interval.

• CI_low, CI_high The lower and upper credible interval limits for the parameters.

Other ci: bci(), ci(), eti(), hdi(), si(), spi()

### Examples


library(bayestestR)

if (require("ggplot2") && require("rstanarm") && require("ggdist")) {
# Generate data =============================================
k <- 11 # number of curves (iterations)
n <- 201 # number of rows
data <- data.frame(x = seq(-15, 15, length.out = n))

# Simulate iterations as new columns
for (i in 1:k) {
data[paste0("iter_", i)] <- dnorm(data$x, seq(-5, 5, length.out = k)[i], 3) } # Note: first, we need to transpose the data to have iters as rows iters <- datawizard::data_transpose(data[paste0("iter_", 1:k)]) # Compute Median data$Median <- point_estimate(iters)[["Median"]]

# Compute Credible Intervals ================================

# Compute ETI (default type of CI)
data[c("ETI_low", "ETI_high")] <- eti(iters, ci = 0.5)[c("CI_low", "CI_high")]

# Compute CWI
# ggdist::curve_interval(reshape_iterations(data), iter_value .width = c(.5))

# Visualization =============================================
ggplot(data, aes(x = x, y = Median)) +
geom_ribbon(aes(ymin = ETI_low, ymax = ETI_high), fill = "red", alpha = 0.3) +
geom_line(size = 1) +
geom_line(
data = reshape_iterations(data),
aes(y = iter_value, group = iter_group),
alpha = 0.3
)
}



[Package bayestestR version 0.13.0 Index]