Function to analyze Bayesian trial for continuous (normally distributed) data, which allows early stopping and incorporation of historical data using the discount function approach.

normal_analysis(
  treatment,
  outcome,
  complete = NULL,
  N_max_treatment = NULL,
  N_max_control = NULL,
  mu0_treatment = NULL,
  sd0_treatment = NULL,
  N0_treatment = NULL,
  mu0_control = NULL,
  sd0_control = NULL,
  N0_control = NULL,
  alternative = "greater",
  N_impute = 100,
  h0 = 0,
  number_mcmc = 10000,
  prob_ha = 0.95,
  futility_prob = 0.1,
  expected_success_prob = 0.9,
  discount_function = "identity",
  fix_alpha = FALSE,
  alpha_max = 1,
  weibull_scale = 0.135,
  weibull_shape = 3,
  method = "fixed"
)

Arguments

treatment

vector. Treatment assignment for patients, 1 for treatment group and 0 for control group.

outcome

vector. Normal outcome of the trial.

complete

vector. Similar length as treatment and outcome variable, 1 for complete outcome, 0 for loss to follow up. If complete is not provided, the dataset is assumed to be complete.

N_max_treatment

integer. Maximum allowable sample size for the treatment arm (including the currently enrolled subjects). Default is NULL, meaning we are already at the final analysis.

N_max_control

integer. Maximum allowable sample size for the control arm (including the currently enrolled subjects). Default is NULL, meaning we are already at the final analysis.

mu0_treatment

scalar. Mean of the historical treatment group.

sd0_treatment

scalar. Standard deviation of the historical treatment group.

N0_treatment

scalar. Number of observations of the historical treatment group.

mu0_control

scalar. Mean of the historical control group.

sd0_control

scalar. Standard deviation of the historical control group.

N0_control

scalar. Number of observations of the historical control group.

alternative

character. The string specifying the alternative hypothesis, must be one of "greater" (default), "less" or "two.sided".

N_impute

scalar. Number of imputations for Monte Carlo simulation of missing data.

h0

scalar. Threshold for comparing two mean values. Default is h0 = 0.

number_mcmc

scalar. Number of Markov Chain Monte Carlo draws in sampling posterior.

prob_ha

scalar. Probability of alternative hypothesis.

futility_prob

scalar. Probability of stopping early for futility.

expected_success_prob

scalar. Probability of stopping early for success.

discount_function

character. If incorporating historical data, specify the discount function. Currently supports the Weibull function (discount_function = "weibull"), the scaled-Weibull function (discount_function = "scaledweibull"), and the identity function (discount_function = "identity"). The scaled-Weibull discount function scales the output of the Weibull CDF to have a maximum value of 1. The identity discount function uses the posterior probability directly as the discount weight. Default value is "identity". See bdpnormal for more details.

fix_alpha

logical. Fix alpha at alpha_max? Default value is FALSE.

alpha_max

scalar. Maximum weight the discount function can apply. Default is 1. For a two-arm trial, users may specify a vector of two values where the first value is used to weight the historical treatment group and the second value is used to weight the historical control group.

weibull_scale

scalar. Scale parameter of the Weibull discount function used to compute alpha, the weight parameter of the historical data. Default value is 0.135. For a two-arm trial, users may specify a vector of two values where the first value is used to estimate the weight of the historical treatment group and the second value is used to estimate the weight of the historical control group. Not used when discount_function = "identity".

weibull_shape

scalar. Shape parameter of the Weibull discount function used to compute alpha, the weight parameter of the historical data. Default value is 3. For a two-arm trial, users may specify a vector of two values where the first value is used to estimate the weight of the historical treatment group and the second value is used to estimate the weight of the historical control group. Not used when discount_function = "identity".

method

character. Analysis method with respect to estimation of the weight parameter alpha. Default method "mc" estimates alpha for each Monte Carlo iteration. Alternate value "fixed" estimates alpha once and holds it fixed throughout the analysis. See the the bdpsurvival vignette
vignette("bdpsurvival-vignette", package="bayesDP") for more details.

Value

A list of output for the analysis of Bayesian trial for normal mean:

prob_of_accepting_alternative

scalar. The input parameter of probability of accepting the alternative.

margin

scalar. The margin input value of difference between mean estimate of treatment and mean estimate of the control.

alternative

character. The input parameter of alternative hypothesis.

N_treatment

scalar. The number of patients enrolled in the experimental group for each simulation.

N_control

scalar. The number of patients enrolled in the control group for each simulation.

N_enrolled

vector. The number of patients enrolled in the trial (sum of control and experimental group for each simulation).

N_complete

scalar. The number of patients who completed the trial and had no loss to follow-up.

N_max_treatment

integer. Maximum allowable sample size for the treatment arm (including the currently enrolled subjects).

N_max_control

integer. Maximum allowable sample size for the control arm (including the currently enrolled subjects).

post_prob_accept_alternative

vector. The final probability of accepting the alternative hypothesis after the analysis is done.

est_final

scalar. The final estimate of the difference in posterior estimate of treatment and posterior estimate of the control group.

stop_futility

scalar. Did the trial stop for futility during imputation of patient who had loss to follow up? 1 for yes and 0 for no.

stop_expected_success

scalar. Did the trial stop for early success during imputation of patient who had loss to follow up? 1 for yes and 0 for no.

Details

If the enrollment size is at the final sample size, i.e. the maximum allowable sample size for the trial, then this function is not of practical use since there is no opportunity to stop trial enrollment. In such a case, it is expected that the follow-up will be conducted per the study protocol and a final analysis made.