swh:1:snp:cf20732a2a91717cec7759cd75c5d1a72600b018
Tip revision: 1b89ec86b6a914c4d45bee998d08eed1ef23f57f authored by Dominique Makowski on 20 July 2020, 08:30:03 UTC
version 0.7.2
version 0.7.2
Tip revision: 1b89ec8
describe_prior.R
#' Describe Priors
#'
#' Returns a summary of the priors used in the model.
#'
#' @param model A Bayesian model.
#' @param ... Currently not used.
#'
#' @examples
#' \dontrun{
#' library(bayestestR)
#'
#' # rstanarm models
#' # -----------------------------------------------
#' if (require("rstanarm")) {
#' model <- rstanarm::stan_glm(mpg ~ wt + cyl, data = mtcars)
#' describe_prior(model)
#' }
#'
#' # brms models
#' # -----------------------------------------------
#' if (require("brms")) {
#' model <- brms::brm(mpg ~ wt + cyl, data = mtcars)
#' describe_prior(model)
#' }
#'
#' # BayesFactor objects
#' # -----------------------------------------------
#' if (require("BayesFactor")) {
#' bf <- ttestBF(x = rnorm(100, 1, 1))
#' describe_prior(bf)
#' }
#' }
#' @importFrom insight get_priors
#' @export
describe_prior <- function(model, ...) {
UseMethod("describe_prior")
}
#' @keywords internal
.describe_prior <- function(model, ...) {
priors <- insight::get_priors(model, ...)
# Format names
names(priors)[-1] <- paste0("Prior_", names(priors)[-1])
# If the prior scale has been adjusted, it is the actual scale that was used.
if ("Prior_Adjusted_Scale" %in% names(priors)) {
priors$Prior_Scale[!is.na(priors$Prior_Adjusted_Scale)] <- priors$Prior_Adjusted_Scale[!is.na(priors$Prior_Adjusted_Scale)]
priors$Prior_Adjusted_Scale <- NULL
}
if ("Prior_Response" %in% names(priors)) {
names(priors)[names(priors) == "Prior_Response"] <- "Response"
}
priors
}
#' @export
describe_prior.stanreg <- .describe_prior
#' @export
describe_prior.brmsfit <- .describe_prior
#' @export
describe_prior.bcplm <- .describe_prior
#' @export
describe_prior.BFBayesFactor <- function(model, ...) {
priors <- insight::get_priors(model)
# Format names
names(priors)[-1] <- paste0("Prior_", names(priors)[-1])
priors
}