R/unit_information_prior.R

Defines functions unit_information_prior

Documented in unit_information_prior

#' Unit-Information Prior for continuous outcomes
#'
#' Constructs a unit-information (weak) prior from an informative \code{normMix}
#' by inflating each component's standard deviation by \eqn{\sqrt{n_h}}.
#'
#' @param informative_prior A \code{normMix} (from \code{RBesT}) built from historical data.
#' @param n_hist Positive integer: historical sample size \eqn{n_h}.
#'
#' @return A \code{normMix} with inflated standard deviations.
#' @export
#' @examples
#' # Start with an informative prior from historical samples via RBesT::mixfit
#' set.seed(1000)
#' fake_hist_draws <- rnorm(300, mean = -3.2, sd = 0.4)
#' inf_prior <- RBesT::mixfit(fake_hist_draws, type = "norm", Nc = 3)
#'
#' nf_prior <- unit_information_prior(inf_prior, n_hist = 300)
#' # Compare SDs before/after
#' rbind(
#'   informative_sd  = as.numeric(inf_prior[3, ]),
#'   unit_info_sd    = as.numeric(nf_prior[3, ])
#' )
unit_information_prior <- function(informative_prior, n_hist) {
  stopifnot(inherits(informative_prior, "normMix"),
            is.numeric(n_hist), n_hist > 0)
  pri <- informative_prior
  pri[3, ] <- pri[3, ] * sqrt(n_hist)
  pri
}

Try the BDIB package in your browser

Any scripts or data that you put into this service are public.

BDIB documentation built on Oct. 18, 2026, 5:08 p.m.