Estimate the difference in an outcome
when compositional parts are substituted for specific unit(s).
The substitution
output encapsulates
the substitution results for all compositional parts
present in the brmcoda
object.
Arguments
- object
A fitted
brmcoda
object.- delta
A integer, numeric value or vector indicating the amount of substituted change between compositional parts.
- ref
Either a character value or vector or a dataset. Can be
"grandmean"
and/or"clustermean"
, or adata.frame
ordata.table
of user's specified reference grid consisting of combinations of covariates over which predictions are made. User's specified reference grid is only possible for simple substitution. Single level models are default to"grandmean"
.- level
A character string or vector. Should the estimate of multilevel models focus on the
"between"
and/or"within"
or"aggregate"
variance? Single-level models are default to"aggregate"
.- summary
A logical value to obtain summary statistics instead of the raw values. Default is
TRUE
. Currently only support outputing raw values for model using grandmean as reference composition.- at
An optional named list of levels for the corresponding variables in the reference grid.
- parts
A optional character string specifying names of compositional parts that should be considered in the substitution analysis. This should correspond to a single set of names of compositional parts specified in the
complr
object. Default to the first composition in thecomplr
object.- base
An optional base substitution. Can be a
data.frame
ordata.table
of the base possible substitution of compositional parts, which can be computed using functionbuild.base
.- type
A character string to indicate the type of substitution. If
"one-to-all"
, all possible one-to-remaining reallocations are estimated. If"one-to-one"
, all possible one-to-one reallocations are estimated. If"equal"
, give equal weight to units (e.g., individuals). If"proportional"
, weights in proportion to the frequencies of units being averaged (e.g., observations across individuals). Default to"equal"
forref = "grandmean"
and"proportional"
forref = "clustermean"
.- weight
A character value specifying the weight to use in calculation of the reference composition.
- scale
Either
"response"
or"linear"
. If"response"
, results are returned on the scale of the response variable. If"linear"
, results are returned on the scale of the linear predictor term, that is without applying the inverse link function or other transformations.- cores
Number of cores to use when executing the chains in parallel, we recommend setting the
mc.cores
option to be as many processors as the hardware and RAM allow (up to the number of compositional parts). For non-Windows OS in non-interactive R sessions, forking is used instead of PSOCK clusters. Default to"one-to-one"
.- ...
Further arguments passed to
posterior_summary
.
Value
A list containing the results of multilevel compositional substitution model. The first six lists contain the results of the substitution estimation for a compositional part.
Mean
Posterior means.
CI_low
andCI_high
95% credible intervals.
Delta
Amount substituted across compositional parts.
From
Compositional part that is substituted from.
To
Compositional parts that is substituted to.
Level
Level where changes in composition takes place.
Reference
Either
grandmean
,clustermean
, orusers
.
Examples
# \donttest{
if(requireNamespace("cmdstanr")){
x <- complr(data = mcompd, sbp = sbp,
parts = c("TST", "WAKE", "MVPA", "LPA", "SB"),
idvar = "ID", total = 1440)
# model with compositional predictor at between and within-person levels
m <- brmcoda(complr = x,
formula = Stress ~ bz1_1 + bz2_1 + bz3_1 + bz4_1 +
wz1_1 + wz2_1 + wz3_1 + wz4_1 +
Female + (1 | ID),
chain = 1, iter = 500, backend = "cmdstanr")
# one to one reallocation at between and within-person levels
sub1 <- substitution(object = m, delta = 5, level = c("between"))
summary(sub1)
# one to all reallocation at between and within-person levels
sub2 <- substitution(object = fit1, delta = 5, level = c("between", "within"),
type = "one-to-all")
summary(sub2)
# model with compositional predictor at aggregate level
fit2 <- brmcoda(complr = x,
formula = Stress ~ z1 + z2 + z3 + z4 + (1 | ID),
chain = 1, iter = 500, backend = "cmdstanr")
sub3 <- substitution(object = fit2, delta = 5, level = c("aggregate"))
}# }
#> Error: CmdStan path has not been set yet. See ?set_cmdstan_path.