Nothing
#' Reporting Bayesian Models from brms
#'
#' Create reports for Bayesian models. The description of the parameters
#' follows the Sequential Effect eXistence and sIgnificance Testing framework
#' (see [SEXIT documentation][bayestestR::sexit]).
#'
#' @inheritParams report.lm
#' @inherit report return seealso
#'
#' @examplesIf require("brms", quietly = TRUE)
#' \donttest{
#' # Bayesian models
#' library(brms)
#' model <- suppressWarnings(brm(mpg ~ qsec + wt, data = mtcars, refresh = 0, iter = 300))
#' r <- report(model, verbose = FALSE)
#' r
#' summary(r)
#' as.data.frame(r)
#' summary(as.data.frame(r))
#' }
#' @return An object of class [report()].
#' @include report.lm.R report.stanreg.R report.lme4.R
#' @export
report.brmsfit <- function(x, ...) {
table <- report_table(x, include_effectsize = FALSE, ...)
text <- report_text(x, table = table, ...)
as.report(text, table = table, ...)
}
#' @export
report_effectsize.brmsfit <- report_effectsize.lm
#' @export
report_table.brmsfit <- report_table.lm
#' @export
report_performance.brmsfit <- report_performance.lm
#' @export
report_statistics.brmsfit <- report_statistics.lm
#' @export
report_random.brmsfit <- report_random.merMod
#' @export
report_model.brmsfit <- report_model.lm
#' @export
report_text.brmsfit <- report_text.lm
# ==================== Specific to Bayes ===================================
# report_priors -----------------------------------------------------------
#' @export
report_priors.brmsfit <- function(x, ...) {
params <- bayestestR::describe_prior(x)
params <- params[params$Parameter != "(Intercept)", ]
# Return empty if no priors info
has_no_prior_information <- (!"Prior_Distribution" %in% names(params)) ||
nrow(params) == 0L ||
all(is.na(params$Prior_Scale))
if (has_no_prior_information) {
return("")
}
values <- ifelse(params$Prior_Distribution == "normal",
paste0(
"mean = ",
insight::format_value(params$Prior_Location),
", SD = ",
insight::format_value(params$Prior_Scale)
),
paste0(
"location = ",
insight::format_value(params$Prior_Location),
", scale = ",
insight::format_value(params$Prior_Scale)
)
)
values <- paste0(params$Prior_Distribution, " (", values, ")")
if (length(unique(values)) == 1L && nrow(params) > 1L) {
text <- paste0("all set as ", values[1])
} else {
text <- paste0("set as ", values)
}
text <- paste0("Priors over parameters were ", text, " distributions")
as.report_priors(text)
}
# report_parameters -------------------------------------------------------
#' @export
report_parameters.brmsfit <- report_parameters.stanreg
# report_intercept --------------------------------------------------------
#' @export
report_intercept.brmsfit <- report_intercept.stanreg
# report_info -------------------------------------------------------------
#' @export
report_info.brmsfit <- report_info.stanreg
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.