Function to simulate patient level data for a normally distributed endpoint
Usage
simulateData(
n_patients,
dose_levels,
sd = NULL,
mods = NULL,
n_sim = 1000,
true_model = NULL,
dr_means = NULL,
probability_scale = FALSE
)Arguments
- n_patients
Vector containing number of patients as a numerical value per dose-group.
- dose_levels
Vector containing the different dosage levels.
- sd
Standard deviation on patient level. Can be NULL if
probability_scaleis TRUE. Default NULL.- mods
An object of class "Mods" as specified in the DoseFinding package. Can be NULL if ´dr_means´ is not NULL. Default NULL.
- n_sim
Number of simulations to be performed, Default is 1000
- true_model
A character for model name, e.g. "emax". Assumed true underlying model. If NULL, all dose-response models included in the mods input parameter will be used. Default NULL.
- dr_means
an optional vector, with information about assumed effects per dose group. Default NULL.
- probability_scale
A boolean to specify if the trial has a continuous or a binary outcome. Setting to TRUE will transform calculations from the logit scale to the probability scale, which can be desirable for a binary outcome. Default FALSE.
Value
A list object, containing patient level simulated data for all assumed true models. Also providing information about simulation iteration, patient number as well as dosage levels.
Examples
models <- DoseFinding::Mods(linear = NULL,
linlog = NULL,
emax = c(0.5, 1.2),
exponential = 2,
doses = c(0, 0.5, 2,4, 8),
maxEff = 6)
dose_levels <- c(0, 0.5, 2, 4, 8)
sd <- 12
n_patients <- c(40, 60, 60, 60, 60)
sim_data <- simulateData(n_patients = n_patients,
dose_levels = dose_levels,
sd = sd,
mods = models)
head(sim_data)
#> simulation ptno dose linear linlog emax1 emax2 exponential
#> 1 1 1 0 13.081588 13.081588 13.081588 13.081588 13.081588
#> 2 1 2 0 4.215108 4.215108 4.215108 4.215108 4.215108
#> 3 1 3 0 -13.124812 -13.124812 -13.124812 -13.124812 -13.124812
#> 4 1 4 0 -7.065638 -7.065638 -7.065638 -7.065638 -7.065638
#> 5 1 5 0 -6.195623 -6.195623 -6.195623 -6.195623 -6.195623
#> 6 1 6 0 17.412528 17.412528 17.412528 17.412528 17.412528
# custom response "model" shape
custom_dose_response <- c(1, 2, 3, 4, 5)
sim_data_custom_dr <- simulateData(n_patients = n_patients,
dose_levels = dose_levels,
sd = sd,
dr_means = custom_dose_response)
head(sim_data_custom_dr)
#> simulation ptno dose dr_response
#> 1 1 1 0 20.716093
#> 2 1 2 0 4.075376
#> 3 1 3 0 1.454067
#> 4 1 4 0 13.761368
#> 5 1 5 0 -2.650874
#> 6 1 6 0 10.975242