For any spending function specified by the user, this
package provides corresponding boundaries for interim testing using
the adaptively weighted log-rank test developed by Yang and Prentice
(2010
Provide monitoring boundaries and nominal p-values at the interim looks using the adaptively weighted log-rank test developed by Yang and Prentice (2010). The package use a re-sampling method to obtain stopping boundaries in sequential designs. The asymptotic distribution of the test statistics of the adaptively weighted log-rank test at the interim looks is examined in Yang (2018).
install.packages("YPInterimTesting")
library(YPInterimTesting)
data(virtual_data) # the data created to show how to utilize the package
time <- virtual$time
event <- virtual$event
group <- virtual$group
spendfun <- c(1.3E-5, 4.4E-4, 0.003, 0.008)
result_all <- ypinterim(time, event, group, spendfun=spendfun)
result_all
summary(result_all)
The above example shows how to test the package with a historical data where interim data at all looks are available. The object result_all
can be formatted to a table using the function summary
.
summary(result)
The known boundaries of the first few looks can be supplied using crtivalue
. The following three examples show how to supply crtivalue
when the boundaries at the previous looks exist.
We first need to calculate the boundary at the first look. The spending function value at the first look is needed.
# Assume that we only have the information on the first look
time <- virtual$time[, 1]
event <- virtual$event[, 1]
group <- virtual$group
spendfun <- c(1.3E-5)
result_look1 <- ypinterim(time, event, group, spendfun=spendfun)
result_look1
summary(result_look1)
When calculating the boundary at the second look, the spending function at the two looks, and boundary at the first look (i.e., the value obtained from the previous example), should be supplied.
time <- virtual$time[, 1:2]
event <- virtual$event[, 1:2]
group <- virtual$group
spendfun <- c(1.3E-5, 4.4E-4)
critvalue <- c(4.36) # the boundary of the first look is supplied.
result_look2 <- ypinterim(time, event, group, spendfun=spendfun, critvalue = critvalue)
result_look2
summary(result_look2)
Similarly, when calculating the boundary at the third look, the spending function at the three looks, and boundaries at the first two looks, should be supplied.
time <- virtual$time[, 1:3]
event <- virtual$event[, 1:3]
group <- virtual$group
spendfun <- c(1.3E-5, 4.4E-4, 0.003)
critvalue <- c(4.36, 3.42) # the boundaries at the first two looks are supplied.
result_look3 <- ypinterim(time, event, group, spendfun=spendfun, critvalue = critvalue)
result_look3
summary(result_look3)
Yang, S. (2018). Interim monitoring using the adaptively weighted log-rank test in clinical trials for survival outcomes. Statistics in Medicine.
Yang, S., & Prentice, R. (2010). Improved logrank-type tests for survival data using adaptive weights. Biometrics, 66(1), 30-38.
Add error messages to ypinterim.default
to help users detect common errors easily.
Fixing errors when critvalue
is supplied in the ypinterim
function.
the argument name of spenfun
in the ypinterim
function is changed to spendfun
.
When the alpha spent is less than 1E-4, the boundaries of that look and the corresponding nominal p-values are now obtained using a (conditional) normal distribution.
When the value of the observed statistic is greater than qnorm(1 - 1E-4/2)
, the nominal p-values are now obtained using a normal distribution.
The default value for repnum
is set to 1E4.
The the results from print
and summary
of the ypinterim
class now show the nominal p-values for the boundaries.
Update the references on the help documents and the DESCRIPTION file as they are now available online.
Add new examples to the ypinterim
help documents in order to show how to utilize the argument critvalue
in the function clearly.
Error fixed in the example data: the virtual_data
has also been changed to have only one group
vector.