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,
covariance_current = "unstructured",
covariance_historical = "unstructured",
alpha = stats::rnorm(n = n_study * n_rep, mean = rep(mu, times = n_study), sd =
rep(tau, times = n_study)),
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 = stats::runif(n = n_rep, min = 0, max = s_tau),
rho_current = stats::runif(n = 1, min = -1, max = 1),
rho_historical = stats::runif(n = n_study - 1, min = -1, max = 1)
)
```

- n_study
Number of studies to simulate.

- n_group
Number of groups (e.g. study arms) to simulate per study.

- n_patient
Number of patients to simulate per study per group.

- n_rep
Number of repeated measures (time points) per patient.

- n_continuous
Number of continuous covariates to simulate (all from independent standard normal distributions).

- n_binary
Number of binary covariates to simulate (all from independent Bernoulli distributions with p = 0.5).

- constraint
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.

- s_delta
Numeric of length 1, prior standard deviation of the study-by-group effect parameters

`delta`

.- s_beta
Numeric of length 1, prior standard deviation of the fixed effects

`beta`

.- s_sigma
Numeric of length 1, prior upper bound of the residual standard deviations.

- s_lambda
shape parameter of the LKJ priors on the unstructured correlation matrices.

- s_mu
Numeric of length 1, prior standard deviation of

`mu`

.- s_tau
Numeric of length 1, Upper bound on

`tau`

.- covariance_current
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.- covariance_historical
Same as

`covariance_current`

, but for the covariance structure of each separate historical study. Each historical study has its own separate covariance matrix.- alpha
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.- delta
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.- beta
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).- sigma
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.- mu
Numeric of length

`n_rep`

, mean of the control group means`alpha`

for each rep.- tau
Numeric of length

`n_rep`

, standard deviation of the control group means`alpha`

for each rep.- rho_current
Numeric of length 1 between -1 and 1, AR(1) residual correlation parameter for the current study.

- rho_historical
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.342 0
#> 2 1 1 1 2 0.342 0
#> 3 1 1 1 3 0.342 0
#> 4 1 1 1 4 0.342 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.948 0
#> 10 1 1 3 2 -0.948 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>
```