Estimate a Bayesian Dynamic Multivariate Panel Model With Multiple Imputation
Source:R/dynamice.R
dynamice.Rd
Applies multiple imputation using mice::mice()
to the supplied data
and fits a dynamic multivariate panel model to each imputed data set using
dynamite()
. Posterior samples from each imputation run are
combined. When using wide format imputation, the long format data
is
automatically converted to a wide format before imputation to preserve the
longitudinal structure, and then converted back to long format for
estimation.
Arguments
- dformula
[
dynamiteformula
]
The model formula. Seedynamiteformula()
and 'Details'.- data
[
data.frame
,tibble::tibble
, ordata.table::data.table
]
The data that contains the variables in the model in long format. Supported column types areinteger
,logical
,double
, andfactor
. Columns of typecharacter
will be converted to factors. Unused factor levels will be dropped. Thedata
can contain missing values which will simply be ignored in the estimation in a case-wise fashion (per time-point and per channel). Inputdata
is converted to channel specific matrix representations viastats::model.matrix.lm()
.- time
[
character(1)
]
A column name ofdata
that denotes the time index of observations. If this variable is a factor, the integer representation of its levels are used internally for defining the time indexing.- group
[
character(1)
]
A column name ofdata
that denotes the unique groups orNULL
corresponding to a scenario without any groups. Ifgroup
isNULL
, a new column.group
is created with constant value1L
is created indicating that all observations belong to the same group. In case of name conflicts withdata
, see thegroup_var
element of the return object to get the column name of the new variable.- priors
[
data.frame
]
An optional data frame with prior definitions. Seeget_priors()
and 'Details'.- backend
[
character(1)
]
Defines the backend interface to Stan, should be either"rstan"
(the default) or"cmdstanr"
. Note thatcmdstanr
needs to be installed separately as it is not on CRAN. It also needs the actualCmdStan
software. See https://mc-stan.org/cmdstanr/ for details.- verbose
[
logical(1)
]
All warnings and messages are suppressed if set toFALSE
. Defaults toTRUE
. Setting this toFALSE
will also disable checks for perfect collinearity in the model matrix.- verbose_stan
[
logical(1)
]
This is theverbose
argument forrstan::sampling()
. Defaults toFALSE
.- stanc_options
[
list()
]
This is thestanc_options
argument passed to the compile method of aCmdStanModel
object viacmdstanr::cmdstan_model()
whenbackend = "cmdstanr"
. Defaults tolist("O0")
. To enable level one compiler optimizations, uselist("O1")
.- threads_per_chain
[
integer(1)
]
A Positive integer defining the number of parallel threads to use within each chain. Default is1
. Seerstan::rstan_options()
andcmdstanr::sample()
for details.- grainsize
[
integer(1)
]
A positive integer defining the suggested size of the partial sums when using within-chain parallelization. Default is number of time points divided bythreads_per_chain
. Setting this to1
leads the workload division entirely to the internal scheduler. The performance of the within-chain parallelization can be sensitive to the choice ofgrainsize
, see Stan manual on reduce-sum for details.- custom_stan_model
[
character(1)
]
An optional character string that either contains a customized Stan model code or a path to a.stan
file that contains the code. Using this will override the generated model code. For expert users only.- debug
[
list()
]
A named list of formname = TRUE
indicating additional objects in the environment of thedynamite
function which are added to the return object. Additionally, valuesno_compile = TRUE
andno_sampling = TRUE
can be used to skip the compilation of the Stan code and sampling steps respectively. This can be useful for debugging when combined withmodel_code = TRUE
, which adds the Stan model code to the return object.- mice_args
[
list()
]
Arguments passed tomice::mice()
excludingdata
.- impute_format
[
character(1)
]
Format of the data that will be passed to the imputation method. Should be either"wide"
(the default) or"long"
corresponding to wide format and long format imputation.- keep_imputed
[
logical(1)
]
Should the imputed datasets be kept in the return object? The default isFALSE
. IfTRUE
, the imputations will be included in theimputed
field in the return object that is otherwiseNULL
.- ...
For
dynamite()
, additional arguments torstan::sampling()
orcmdstanr::sample()
, such aschains
andcores
(chains
andparallel_chains
incmdstanr
). Forsummary()
, additional arguments toas.data.frame.dynamitefit()
. Forprint()
, further arguments to the print method for tibbles (see tibble::formatting). Not used forformula()
.
See also
Model fitting
dynamite()
,
get_priors()
,
update.dynamitefit()