Learn R Programming

OptInterim (version 3.0.1)

TestStage: Statistical test for two-stage or three-stage designs from function OptimDes

Description

This function performs the hypothesis tests for the two-stage or three-stage designs with event-free endpoint from OptimDes.

Usage

TestStage(tan,tstage,x,num.arm,num.stage, Y1,T1,Y0=NULL,T0=NULL,p0=NULL, C1L=NULL,C1U=NULL,C2L=NULL,C2U=NULL,C3U=NULL, printTest=TRUE, cen1=rep(1,length(T1)),cen0=rep(1,length(T0)))

Arguments

tan
Study time (from first accrual) of the analysis.
tstage
tstage=1 for the first interim analysis. tstage=2 for the second analysis interim analysis when num.stage=3, or the final analysis when num.stage=2. tstage=3 for the final analysis when num.stage=3
x
Pre-specified time for the event-free endpoint (e.g., 1 year).
num.arm
Number of treatment arms. num.arm=1 for single-arm trial and num.arm=2 for a two-arm randomized trial.
num.stage
Number of trial stages: num.stage=2 or num.stage=3.
Y1
A vector containing the study start times (measured from the beginning of the study) of patients in the treatment arm. If times occuring after the analysis time tan are included, they are appropriately censored.
T1
A vector containing the event times corresponding to Y1.
Y0
A vector containing the study start times (measured from the beginning of the study) of patients in the control arm. It does not need to be set for 1-arm trials. If times occuring after the analysis time tan are included, they are appropriately censored.
T0
A vector containing the event times corresponding to Y0.
p0
The event rate under the null hypothesis.
C1L
The study is terminated for futility after the first stage if the Z-statistic is
C1U
The study is terminated for efficacy after the first stage if the Z-statistic is >=C1U.
C2L
For a three-stage design, stop for futility after the second stage if Z
C2U
For a three-stage design, stop for efficacy after the second stage if the Z>=C2U. For a two-stage design, reject the null hypothesis at the final stage if the Z>=C2U.
C3U
For a three-stage design, reject the null hypothesis at the final stage if the Z>=C3U.
printTest
If TRUE (default), the result of the test and the interim decision is printed.
cen1
The times in T1 are regarded as events unless they are set to censored by setting the corresponding value in cen1 to zero.
cen0
The times in T0 are regarded as events unless they are set to censored by setting the corresponding value in cen0 to zero.

Value

A vector containing results for the interim analysis or the final analysis:
z
The test statistic
se
Standard error of sum of the cummulative hazards (not log cummulative hazards) at time x.
cumL
A two-element vector of cummulative hazard estimators at time x.

Details

The hypothesis tests are performed in two stages as described in Huang, Talukder and Thomas (2010) and Case and Morgan (2003) for single-arm designs, and extended to the randomized two-arm two-stage and three-stage designs.

For two-stage designs:

Stage 1. Accrue patients between time 0 and time t1. Each patient will be followed until failure, or for x years or until time t1, whichever is less. Calculate the normalized interim test statistic Z1. If Z1<=c1< code="">, stop the study for futility; For randomized two-arm trials, if Z1>=C1U, stop the study for efficacy; otherwise, continue to the next stage.

Stage 2. Accrue patients between t1 and MDA. Follow all patients until failure or for x years, then calculate the normalized final test statistic Z2, and reject H0 if Z2>=C2. For three-stage designs: Stage 1. Accrue patients between time 0 and time t1. Each patient will be followed until failure, or for x years or until time t1, whichever is less. Calculate the normalized interim test statistic Z1. If Z1<=c1< code="">, stop the study for futility; For randomized two-arm trials, if Z1>=C1U, stop the study for efficacy; otherwise, continue to the next stage.

Stage 2. Accrue patients between t1 and t2. Follow all patients until failure or for x years, then calculate the normalized final test statistic Z2. If Z2<=c2< code="">, stop the study for futility; For randomized two-arm trials, if Z2>=C2U, stop the study for efficacy; otherwise, continue to the next stage. Stage 3. Accrue patients between t2 and MDA. Follow all patients until failure or for x years, then calculate the normalized final test statistic Z3, and reject H0 if Z3>=C3.

The test statistic is based on the Nelson-Aalen estimator of the cumulative hazard function.

References

Huang B., Talukder E. and Thomas N. Optimal two-stage Phase II designs with long-term endpoints. Statistics in Biopharmaceutical Research, 2(1), 51--61. Case M. D. and Morgan T. M. (2003) Design of Phase II cancer trials evaluating survival probabilities. BMC Medical Research Methodology, 3, 7.

Lin D. Y., Shen L., Ying Z. and Breslow N. E. (1996) Group seqential designs for monitoring survival probabilities. Biometrics, 52, 1033--1042.

Simon R. (1989) Optimal two-stage designs for phase II clinical trials. Controlled Clinical Trials, 10, 1--10.

See Also

OptimDes, SimDes

Examples

Run this code

## Not run: 
# ### single arm trial
# 
# B.init <- c(1, 2, 3, 4, 5)
# m.init <- c(15, 20, 25, 20, 15)
# alpha <- 0.05
# beta <- 0.1
# param <- c(1, 1.09, 2, 1.40)
# x <- 1
# 
# # H0: S0=0.40 H1: S1=0.60
# 
# shape0 <- param[1]
# scale0 <- param[2]
# shape1 <- param[3]
# scale1 <- param[4]
# 
# object1 <- OptimDes(B.init,m.init,alpha,beta,param,x,target="EDA",sf="futility",num.arm=1,num.stage=2)
# n <- object1$n[2]
# t1 <- object1$stageTime[1]
# C1 <- object1$boundary[1]
# C1U <- object1$boundary[2]
# C2 <- object1$boundary[3]
# b <- length(B.init)
# l <- rank(c(cumsum(m.init),n),ties.method="min")[b+1]
# mda <- ifelse(l>1,B.init[l-1]+(B.init[l]-B.init[l-1])*(n-sum(m.init[1:(l-1)]))/m.init[l],B.init[l]*(n/m.init[l]))
# 
# ### set up values to create a stepwise uniform distribution for accrual
# B <- B.init[1:l]
# B[l] <- mda
# xv <- c(0,B)
# M <- m.init[1:l]
# M[l] <- ifelse(l>1,n-sum(m.init[1:(l-1)]),n)
# yv <- c(0,M/(diff(xv)*n),0)
# 
# # density function of accrual 
# dens.Y <- stepfun(xv,yv,f=1,right=TRUE)
# # pool of time points to be simulated from
# t.Y <- seq(0,mda,by=0.01)
# 
# # simulate study times of length n
# sample.Y <- sample(t.Y,n,replace=TRUE,prob=dens.Y(t.Y))
# 
# # simulate failure times of length n under the alternative hypothesis
# sample.T <- rweibull(n,shape=shape1,scale=scale1)
# 
# Y1 <- sample.Y[sample.Y<=t1]
# T1 <- sample.T[sample.Y<=t1]
# Y2 <- sample.Y[sample.Y>t1]
# T2 <- sample.T[sample.Y>t1]
# 
# # event rate under null hypothesis
# p0<-pweibull(x,shape=shape0,scale=scale0)
# 
# # interim analysis
# TestStage(x, C1, C1U, C2, tan=t1,num.arm=1,num.stage=2,Y11=Y1, T11=T1, p0=p0)
# 
# # final analysis if the study continues
# TestStage(x, C1, C1U, C2, tan=t1,num.arm=1,num.stage=2,Y11=Y1, T11=T1, p0=p0)
# 
# # simulate failure times of length n under the null hypothesis
# sample.T <- rweibull(n,shape=shape0,scale=scale0)
# 
# Y1 <- sample.Y[sample.Y<=t1]
# T1 <- sample.T[sample.Y<=t1]
# Y2 <- sample.Y[sample.Y>t1]
# T2 <- sample.T[sample.Y>t1]
# 
# # interim analysis
# TestStage(x, C1, C1U, C2, tan=t1,num.arm=1,num.stage=2,Y11=Y1, T11=T1, p0=p0)
# 
# # final analysis if the study continues
# TestStage(x, C1, C1U, C2, tan=mda+x,num.arm=1,num.stage=2,Y11=Y1, T11=T1, p0=p0,Y21=Y2,T21=T2)
# 
# ## End(Not run)

Run the code above in your browser using DataLab