bdpsurvival {bayesDP}  R Documentation 
Bayesian Discount Prior: Survival Analysis
Description
bdpsurvival
is used to estimate the survival probability
(single arm trial; OPC) or hazard ratio (twoarm trial; RCT) for
rightcensored data using the survival analysis implementation of the
Bayesian discount prior. In the current implementation, a twoarm analysis
requires all of current treatment, current control, historical treatment,
and historical control data. This code is modeled after
the methodologies developed in Haddad et al. (2017).
Usage
bdpsurvival(
formula = formula,
data = data,
data0 = NULL,
breaks = NULL,
a0 = 0.1,
b0 = 0.1,
surv_time = NULL,
discount_function = "identity",
alpha_max = 1,
fix_alpha = FALSE,
number_mcmc = 10000,
weibull_scale = 0.135,
weibull_shape = 3,
method = "mc",
compare = TRUE
)
Arguments
formula 
an object of class "formula." Must have a survival object on the left side and at most one input on the right side, treatment. See "Details" for more information. 
data 
a data frame containing the current data variables in the model. Columns denoting 'time' and 'status' must be present. See "Details" for required structure. 
data0 
optional. A data frame containing the historical data variables in the model. If present, the column labels of data and data0 must match. 
breaks 
vector. Breaks (interval starts) used to compose the breaks of the piecewise exponential model. Do not include zero. Default breaks are the quantiles of the input times. 
a0 
scalar. Prior value for the gamma shape of the piecewise exponential hazards. Default is 0.1. 
b0 
scalar. Prior value for the gamma rate of the piecewise exponential hazards. Default is 0.1. 
surv_time 
scalar. Survival time of interest for computing the probability of survival for a single arm (OPC) trial. Default is overall, i.e., current+historical, median survival time. 
discount_function 
character. Specify the discount function to use.
Currently supports 
alpha_max 
scalar. Maximum weight the discount function can apply. Default is 1. For a twoarm 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. 
fix_alpha 
logical. Fix alpha at alpha_max? Default value is FALSE. 
number_mcmc 
scalar. Number of Monte Carlo simulations. Default is 10000. 
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 twoarm 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. 
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 twoarm 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. 
method 
character. Analysis method with respect to estimation of the weight
paramter alpha. Default method " 
compare 
logical. Should a comparison object be included in the fit?
For a onearm analysis, the comparison object is simply the posterior
chain of the treatment group parameter. For a twoarm analysis, the comparison
object is the posterior chain of the treatment effect that compares treatment and
control. If 
Details
bdpsurvival
uses a twostage approach for determining the
strength of historical data in estimation of a survival probability outcome.
In the first stage, a discount function is used that
that defines the maximum strength of the
historical data and discounts based on disagreement with the current data.
Disagreement between current and historical data is determined by stochastically
comparing the respective posterior distributions under noninformative priors.
With a single arm survival data analysis, the comparison is the
probability (p
) that the current survival is less than the historical
survival. For a twoarm survival data, analysis the comparison is the
probability that the hazard ratio comparing treatment and control is
different from zero. The comparison metric p
is then
input into the discount function and the final strength of the
historical data is returned (alpha).
In the second stage, posterior estimation is performed where the discount
function parameter, alpha
, is used incorporated in all posterior
estimation procedures.
To carry out a single arm (OPC) analysis, data for the current and
historical treatments are specified in separate data frames, data and data0,
respectively. The data frames must have matching columns denoting time and status.
The 'time' column is the survival (censor) time of the event and the 'status' column
is the event indicator. The results are then based on the posterior probability of
survival at surv_time
for the current data augmented by the historical data.
Twoarm (RCT) analyses are specified similarly to a single arm trial. Again the input data frames must have columns denoting time and status, but now an additional column named 'treatment' is required to denote treatment and control data. The 'treatment' column must use 0 to indicate the control group. The current data are augmented by historical data (if present) and the results are then based on the posterior distribution of the hazard ratio between the treatment and control groups.
For more details, see the bdpsurvival
vignette:
vignette("bdpsurvivalvignette", package="bayesDP")
Value
bdpsurvival
returns an object of class "bdpsurvival".
The functions summary
and print
are used to obtain and
print a summary of the results, including user inputs. The plot
function displays visual outputs as well.
An object of class "bdpsurvival
" is a list containing at least
the following components:
posterior_treatment

list. Entries contain values related to the treatment group:
alpha_discount
numeric. Alpha value, the weighting parameter of the historical data.p_hat
numeric. The posterior probability of the stochastic comparison between the current and historical data.posterior_survival
vector. If onearm trial, a vector of lengthnumber_mcmc
containing the posterior probability draws of survival atsurv_time
.posterior_flat_survival
vector. If onearm trial, a vector of lengthnumber_mcmc
containing the probability draws of survival atsurv_time
for the current treatment not augmented by historical treatment.prior_survival
vector. If onearm trial, a vector of lengthnumber_mcmc
containing the probability draws of survival atsurv_time
for the historical treatment.posterior_hazard
matrix. A matrix withnumber_mcmc
rows andlength(breaks)
columns containing the posterior draws of the piecewise hazards for each interval break point.posterior_flat_hazard
matrix. A matrix withnumber_mcmc
rows andlength(breaks)
columns containing the draws of piecewise hazards for each interval break point for current treatment not augmented by historical treatment.prior_hazard
matrix. A matrix withnumber_mcmc
rows andlength(breaks)
columns containing the draws of piecewise hazards for each interval break point for historical treatment.
posterior_control

list. If twoarm trial, contains values related to the control group analagous to the
posterior_treatment
output. final

list. Contains the final comparison object, dependent on the analysis type:
Onearm analysis: vector. Posterior chain of survival probability at requested time.
Twoarm analysis: vector. Posterior chain of loghazard rate comparing treatment and control groups.
args1

list. Entries contain user inputs. In addition, the following elements are ouput:
S_t
,S_c
,S0_t
,S0_c
survival objects. Used internally to pass survival data between functions.arm2
logical. Used internally to indicate onearm or twoarm analysis.
References
Haddad, T., Himes, A., Thompson, L., Irony, T., Nair, R. MDIC Computer Modeling and Simulation working group.(2017) Incorporation of stochastic engineering models as prior information in Bayesian medical device trials. Journal of Biopharmaceutical Statistics, 115.
See Also
summary
,
print
,
and plot
for details of each of the
supported methods.
Examples
# Onearm trial (OPC) example  survival probability at 5 years
# Collect data into data frames
df_ < data.frame(
status = rexp(50, rate = 1 / 30),
time = rexp(50, rate = 1 / 20)
)
df_$status < ifelse(df_$time < df_$status, 1, 0)
df0 < data.frame(
status = rexp(50, rate = 1 / 30),
time = rexp(50, rate = 1 / 10)
)
df0$status < ifelse(df0$time < df0$status, 1, 0)
fit1 < bdpsurvival(Surv(time, status) ~ 1,
data = df_,
data0 = df0,
surv_time = 5,
method = "fixed"
)
print(fit1)
## Not run:
plot(fit1)
## End(Not run)
# Twoarm trial example
# Collect data into data frames
df_ < data.frame(
time = c(
rexp(50, rate = 1 / 20), # Current treatment
rexp(50, rate = 1 / 10)
), # Current control
status = rexp(100, rate = 1 / 40),
treatment = c(rep(1, 50), rep(0, 50))
)
df_$status < ifelse(df_$time < df_$status, 1, 0)
df0 < data.frame(
time = c(
rexp(50, rate = 1 / 30), # Historical treatment
rexp(50, rate = 1 / 5)
), # Historical control
status = rexp(100, rate = 1 / 40),
treatment = c(rep(1, 50), rep(0, 50))
)
df0$status < ifelse(df0$time < df0$status, 1, 0)
fit2 < bdpsurvival(Surv(time, status) ~ treatment,
data = df_,
data0 = df0,
method = "fixed"
)
summary(fit2)
### Fix alpha at 1
fit2_1 < bdpsurvival(Surv(time, status) ~ treatment,
data = df_,
data0 = df0,
fix_alpha = TRUE,
method = "fixed"
)
summary(fit2_1)