Simulate from the non-longitudinal hierarchical model.
hbl_sim_hierarchical(
n_study = 5,
n_group = 3,
n_patient = 100,
n_rep = 4,
n_continuous = 0,
n_binary = 0,
constraint = FALSE,
s_delta = 1,
s_beta = 1,
s_sigma = 1,
s_lambda = 1,
s_mu = 1,
s_tau = 1,
d_tau = 4,
prior_tau = "half_t",
covariance_current = "unstructured",
covariance_historical = "unstructured",
alpha = NULL,
delta = stats::rnorm(n = (n_group - 1) * (n_rep - as.integer(constraint)), mean = 0, sd
= s_delta),
beta = stats::rnorm(n = n_study * (n_continuous + n_binary), mean = 0, sd = s_delta),
sigma = stats::runif(n = n_study * n_rep, min = 0, max = s_sigma),
mu = stats::rnorm(n = n_rep, mean = 0, sd = s_mu),
tau = NULL,
rho_current = stats::runif(n = 1, min = -1, max = 1),
rho_historical = stats::runif(n = n_study - 1, min = -1, max = 1)
)
Number of studies to simulate.
Number of groups (e.g. study arms) to simulate per study.
Number of patients to simulate per study per group.
Number of repeated measures (time points) per patient.
Number of continuous covariates to simulate (all from independent standard normal distributions).
Number of binary covariates to simulate (all from independent Bernoulli distributions with p = 0.5).
Logical of length 1, whether to pool all study arms at baseline (first rep). Appropriate when the response is the raw response (as opposed to change from baseline) and the first rep (i.e. time point) is prior to treatment.
Numeric of length 1, prior standard deviation
of the study-by-group effect parameters delta
.
Numeric of length 1, prior standard deviation
of the fixed effects beta
.
Numeric of length 1, prior upper bound of the residual standard deviations.
shape parameter of the LKJ priors on the unstructured correlation matrices.
Numeric of length 1,
prior standard deviation of mu
.
Non-negative numeric of length 1.
If prior_tau
is "half_t"
, then s_tau
is the scale parameter of
the Student t prior of tau
and analogous to the sigma
parameter of
the Student-t parameterization given at
https://mc-stan.org/docs/functions-reference/unbounded_continuous_distributions.html. # nolint
If prior_tau
is "uniform"
, then s_tau
is the upper bound of tau
.
Upper bound on tau
if prior_tau
is "uniform"
.
Positive numeric of length 1. Degrees of freedom of the
Student t prior of tau
if prior_tau
is "half_t"
.
Character string, family of the prior of tau
.
If prior_tau
equals "uniform"
, then the prior on tau
is
a uniform prior with lower bound 0 and upper bound s_tau
.
If prior_tau
equals "half_t"
, then the prior on tau
is a
half Student-t prior with center 0, lower bound 0, scale parameter
s_tau
, and degrees of freedom d_tau
. The scale parameter s_tau
is analogous to the sigma
parameter of
the Student-t parameterization given at
https://mc-stan.org/docs/functions-reference/unbounded_continuous_distributions.html. # nolint
Character of length 1,
covariance structure of the current study.
Possible values are "unstructured"
for fully parameterized
covariance matrices, "ar1"
for AR(1) covariance matrices,
and "diagonal"
for residuals independent across time within
each patient. In MCMC (e.g. hbl_mcmc_hierarchical()
),
the covariance structure affects computational speed.
Unstructured covariance is slower than AR(1), and AR(1) is slower
than diagonal. This is particularly true for covariance_historical
if there are many historical studies in the data.
Same as covariance_current
,
but for the covariance structure of each separate historical study.
Each historical study has its own separate covariance matrix.
Numeric vector of length n_rep
for the pooled
and model and length n_study * n_rep
for the
independent and hierarchical models.
alpha
is the vector of control group mean parameters.
alpha
enters the model by multiplying with
$matrices$x_alpha
(see the return value).
The control group in the data is the one with the
group
column equal to 1.
Numeric vector of length
(n_group - 1) * (n_rep - as.integer(constraint))
of treatment effect parameters.
delta
enters the model by multiplying with
$matrices$x_delta
(see the return value).
The control (non-treatment) group in the data is the one with the
group
column equal to 1.
Numeric vector of n_study * (n_continuous + n_binary)
fixed effect parameters. Within each study,
the first n_continuous
betas
are for the continuous covariates, and the rest are for
the binary covariates. All the beta
s for one study
appear before all the beta
s for the next study,
and studies are arranged in increasing order of
the sorted unique values in $data$study
in the output.
betas
enters the model by multiplying with
$matrices$x_alpha
(see the return value).
Numeric vector of n_study * n_rep
residual standard deviation parameters for each study
and rep. The elements are sorted with all the standard deviations
of study 1 first (all the reps), then all the reps of study 2, etc.
Numeric of length n_rep
,
mean of the control group means alpha
for each rep.
Numeric of length n_rep
,
standard deviation of the control group means alpha
for each rep.
Numeric of length 1 between -1 and 1, AR(1) residual correlation parameter for the current study.
Numeric of length n_study - 1
between -1 and 1,
AR(1) residual correlation parameters for the historical studies.
A list with the following elements:
data
: tidy long-form dataset with the patient-level data.
one row per patient per rep and indicator columns for the study,
group (e.g. treatment arm), patient ID, and rep. The response
columns is the patient response. The other columns are
baseline covariates. The control group is the one with
the group
column equal to 1, and the current study (non-historical)
is the one with the maximum value of the study
column.
Only the current study has any non-control-group patients,
the historical studies have only the control group.
parameters
: named list of model parameter values.
See the model specification vignette for details.
matrices
: A named list of model matrices.
See the model specification vignette for details.
Other simulate:
hbl_sim_independent()
,
hbl_sim_pool()
hbl_sim_hierarchical(n_continuous = 1)$data
#> # A tibble: 2,800 × 10
#> study group patient rep covariate_study1_continuous1 covariate_study2_con…¹
#> <int> <int> <int> <int> <dbl> <dbl>
#> 1 1 1 1 1 -0.484 0
#> 2 1 1 1 2 -0.484 0
#> 3 1 1 1 3 -0.484 0
#> 4 1 1 1 4 -0.484 0
#> 5 1 1 2 1 -1.01 0
#> 6 1 1 2 2 -1.01 0
#> 7 1 1 2 3 -1.01 0
#> 8 1 1 2 4 -1.01 0
#> 9 1 1 3 1 0.119 0
#> 10 1 1 3 2 0.119 0
#> # ℹ 2,790 more rows
#> # ℹ abbreviated name: ¹covariate_study2_continuous1
#> # ℹ 4 more variables: covariate_study3_continuous1 <dbl>,
#> # covariate_study4_continuous1 <dbl>, covariate_study5_continuous1 <dbl>,
#> # response <dbl>