# For 90 percent power (pow), a call to gsearlyModel provides a feasible design
fp <- c(0.0000,0.0010,0.0250)
tn <- c(0.2400,0.7200,0.9750)
modeldesign <- gsearlyModel(rmodel="dilin", trecruit=36, s=3, tfu=c(3,6,12),
tinterims=c(18,30), pow=0.9, vphi=0.5, m=2,
cmodel="uniform", sd=20, rho=0.5, theta=8, fp=fp, tn=tn)
modeldesign
# This design can be replicated using gsearlyUser
n <- modeldesign$rdata$n["total"]
ninterims <- modeldesign$rdata$interims
cmodel <- modeldesign$idata$cmodel$corrmat
userdesign <- gsearlyUser(trecruit=36, s=3, tfu=c(3,6,12), tinterims=c(18,30),
ninterims=ninterims, n=n, vphi=0.5, cmodel=cmodel,
sd=20, theta=8, fp=fp, tn=tn)
userdesign
# Expected numbers of participants at interim analyses
modeldesign$rdata$interims
userdesign$rdata$interims
# Information at these interims and final analysis
modeldesign$idata$interims
userdesign$idata$interims
# Upper and lower stopping boundaries and probabilities
rbind(modeldesign$power$lowerror, modeldesign$power$upperror)
rbind(userdesign$power$lowerror, userdesign$power$upperror)
# Change correlation matrix and interim numbers
cmodel <- matrix(c(1,0.2,0.1, 0.2,1,0.1, 0.1,0.1,1), nrow=3, byrow=TRUE)
ninterims <- matrix(c(130,110,90,45, 200,175,160,120), nrow=2, byrow=TRUE)
# For 90 percent power (pow), a call to gsearlyUser provides a feasible design
nuserdesign <- gsearlyUser(trecruit=36, s=3, tfu=c(3,6,12), tinterims=c(18,30),
ninterims=ninterims, vphi=0.5, pow=0.9, cmodel=cmodel,
sd=20, theta=8, fp=fp, tn=tn)
nuserdesign
Run the code above in your browser using DataLab