| brm_marginal_draws {brms.mmrm} | R Documentation |
MCMC draws from the marginal posterior of an MMRM
Description
Get marginal posterior draws from a fitted MMRM.
Usage
brm_marginal_draws(
model,
data = model$brms.mmrm_data,
formula = model$brms.mmrm_formula,
transform = brms.mmrm::brm_transform_marginal(data = data, formula = formula,
average_within_subgroup = average_within_subgroup),
effect_size = attr(formula, "brm_allow_effect_size"),
average_within_subgroup = NULL,
use_subgroup = NULL,
control = NULL,
baseline = NULL
)
Arguments
model |
A fitted model object from |
data |
A classed data frame from |
formula |
An object of class |
transform |
Matrix with one row per marginal mean and one column
per model parameter. |
effect_size |
Logical, |
average_within_subgroup |
|
use_subgroup |
Deprecated. No longer used. |
control |
Deprecated. Set the control group level in |
baseline |
Deprecated. Set the control group level in |
Value
A named list of tibbles of MCMC draws of the marginal posterior
distribution of each treatment group and time point. These marginals
are also subgroup-specific if brm_formula() included fixed effects
that use the subgroup variable originally declared in brm_data().
In each tibble, there is 1 row per posterior sample and one column for
each type of marginal distribution (i.e. each combination of treatment
group and discrete time point. The specific tibbles in the returned
list are described below:
-
response: on the scale of the response variable. -
difference_time: change from baseline: theresponseat a particular time minus theresponseat baseline (reference_time). Only returned if thereference_timeargument ofbrm_data()was notNULL(i.e. if a baseline value for the time variable was identified). -
difference_group: treatment effect: These samples depend on the values ofreference_groupandreference_timewhich were originally declared inbrm_data().reference_groupis the control group, andreference_timeis baseline. If baseline was originally given (viareference_timeinbrm_data()), thendifference_timeis the change-from-baseline value of each active group minus that of the control group. Otherwise, if baseline is omitted (i.e.reference_time = NULL(default) inbrm_data()), thendifference_timeis the raw response at each active group minus that of the control group. -
difference_subgroup: subgroup differences: thedifference_groupat each subgroup level minus thedifference_groupat the subgroup reference level (reference_subgroup). Only reported if a subgroup analysis was specified through the appropriate arguments tobrm_data()andbrm_formula(). -
effect: effect size, defined as the treatment difference divided by the residual standard deviation. Omitted if theeffect_sizeargument isFALSEor if thebrm_formula_sigma()includes baseline or covariates. -
sigma: posterior draws of linear-scale marginal standard deviations of residuals. Omitted if theeffect_sizeargument isFALSEor if thebrm_formula_sigma()includes baseline or covariates.
Baseline
The returned values from brm_marginal_draws()
depend on whether a baseline time point
was declared through the reference_time argument of brm_data().
If reference_time was not NULL, then brm_marginal_draws() will
calculate change from baseline, and it will calculate treatment
differences as differences between change-from-baseline values.
If reference_time was not NULL, then brm_marginal_draws() will
not calculate change from baseline, and it will calculate treatment
differences as differences between response values.
Separation string
Post-processing in brm_marginal_draws() names each of the
group-by-time marginal means with the delimiting character string
from Sys.getenv("BRM_SEP", unset = "|"). Neither the column names
nor element names of the group and time variables can contain
this string. To set a custom string yourself, use
Sys.setenv(BRM_SEP = "YOUR_CUSTOM_STRING").
See Also
Other marginals:
brm_marginal_data(),
brm_marginal_draws_average(),
brm_marginal_grid(),
brm_marginal_probabilities(),
brm_marginal_summaries()
Examples
if (identical(Sys.getenv("BRM_EXAMPLES", unset = ""), "true")) {
set.seed(0L)
data <- brm_data(
data = brm_simulate_simple()$data,
outcome = "response",
group = "group",
time = "time",
patient = "patient",
reference_group = "group_1",
reference_time = "time_1"
)
formula <- brm_formula(
data = data,
baseline = FALSE,
baseline_time = FALSE
)
tmp <- utils::capture.output(
suppressMessages(
suppressWarnings(
model <- brm_model(
data = data,
formula = formula,
chains = 1,
iter = 100,
refresh = 0
)
)
)
)
brm_marginal_draws(data = data, formula = formula, model = model)
}