Compile MCMC sampler using STAN and create simulation object
Source:R/create_simulation_obj.R
create_simulation_obj.Rd
Compile MCMC sampler using STAN and create simulation object
Usage
create_simulation_obj(
data_matrix_list,
covariate = NULL,
outcome,
borrowing,
treatment,
quiet = TRUE
)
Arguments
- data_matrix_list
SimDataList
. The list of lists of data matrices created withsim_data_list()
.- covariate
SimCovariateList
orCovariate
orNULL
. List ofCovariate
objects created withsim_covariate()
, a singleCovariate
object created byadd_covariates()
, orNULL
(no covariate adjustment).- outcome
SimOutcomeList
orOutcome
. List ofOutcome
objects created withsim_outcome()
, or singleOutcome
object (e.g., created byoutcome_surv_exponential()
).- borrowing
SimBorrowingList
orBorrowing
. List ofBorrowing
objects created withsim_borrowing()
, or a singleBorrowing
object created byborrowing_full()
,borrowing_none()
, orborrowing_hierarchical_commensurate()
.- treatment
SimTreatmentList
orTreatment
. List ofTreatment
objects created withsim_treatment()
or a singleTreatment
object created bytreatment_details()
.- quiet
logical. Whether to print messages (
quiet = FALSE
) or not (quiet = TRUE
, the default)
Value
Object of class Simulation
.
Examples
base_mat <- matrix(
c(
rep(0, 200), rep(0, 200), rep(1, 200),
rep(1, 200), rep(0, 200), rep(0, 200),
rep(0, 600)
),
ncol = 3,
dimnames = list(NULL, c("ext", "trt", "driftOR"))
)
add_binary_endpoint <- function(odds_ratio,
base_matrix = base_mat) {
linear_predictor <- base_matrix[, "trt"] * log(odds_ratio)
prob <- 1 / (1 + exp(-linear_predictor))
bin_endpoint <- rbinom(
NROW(base_matrix),
1,
prob
)
cbind(base_matrix, matrix(bin_endpoint, ncol = 1, dimnames = list(NULL, "ep")))
}
data_list <- list(
list(add_binary_endpoint(1.5), add_binary_endpoint(1.5)),
list(add_binary_endpoint(2.5), add_binary_endpoint(2.5))
)
guide <- data.frame(
trueOR = c(1.5, 2.5),
driftOR = c(1.0, 1.0),
index = 1:2
)
sdl <- sim_data_list(
data_list = data_list,
guide = guide,
effect = "trueOR",
drift = "driftOR",
index = "index"
)
if (check_cmdstan()) {
sim_object <- create_simulation_obj(
data_matrix_list = sdl,
outcome = outcome_bin_logistic("ep", prior_normal(0, 1000)),
borrowing = sim_borrowing_list(list(
full_borrowing = borrowing_full("ext"),
bdb = borrowing_hierarchical_commensurate("ext", prior_exponential(0.0001))
)),
treatment = treatment_details("trt", prior_normal(0, 1000))
)
}