Skip to contents

Create Stan Code for Model

Usage

make_model_string_model(borrowing, outcome, analysis_obj)

# S4 method for class 'ANY,ANY,Analysis'
make_model_string_model(borrowing, outcome, analysis_obj)

# S4 method for class 'BorrowingFull,ANY,Analysis'
make_model_string_model(borrowing, outcome, analysis_obj)

# S4 method for class 'BorrowingNone,ANY,Analysis'
make_model_string_model(borrowing, outcome, analysis_obj)

# S4 method for class 'BorrowingHierarchicalCommensurate,ANY,Analysis'
make_model_string_model(borrowing, outcome, analysis_obj)

Arguments

borrowing

borrowing object

outcome

outcome object

analysis_obj

analysis object

Value

glue character containing the Stan code for the data block.

Examples

anls_obj <- create_analysis_obj(
    data_matrix = example_matrix,
    outcome = outcome_surv_exponential(
      "time",
      "cnsr",
      baseline_prior = prior_normal(0, 1000)
    ),
    borrowing = borrowing_hierarchical_commensurate(
      "ext",
      prior_exponential(.001)
    ),
    treatment = treatment_details(
      "trt",
      prior_normal(0, 1000)
    ),
    covariates = add_covariates(
      covariates = c("cov1", "cov2"),
      priors = prior_normal(0, 1000)
    )
  )
#> Inputs look good.
#> Stan program compiled successfully!
#> Ready to go! Now call `mcmc_sample()`.
make_model_string_model(anls_obj@borrowing, anls_obj@outcome, anls_obj)
#> model {
#>   vector[N] lp;
#>   vector[N] elp;
#>   beta_trt ~ normal(0, 1000);
#>   lp = X * beta + Z * alpha + trt * beta_trt;
#> elp = exp(lp) ;
#>   
#>   beta[1] ~ normal(0, 1000) ;
#> beta[2] ~ normal(0, 1000) ;
#>   tau ~ exponential(0.001) ;
#> real sigma;
#> sigma = 1 / tau;
#> alpha[2] ~ normal(0, 1000) ;
#> alpha[1] ~ normal(alpha[2], sqrt(sigma)) ;
#>   for (i in 1:N) {
#>    if (cens[i] == 1) {
#>       target += exponential_lccdf(time[i] | elp[i] );
#>    } else {
#>       target += exponential_lpdf(time[i] | elp[i] );
#>    }
#> }
#> }