## ##### ##### Solutions to Session 5 Problems ##### ##### Author: D. Gillen ##### ## ##### ##### Problem 1: Monitoring the sepsis trial ##### ## ##### Definition of sponsor's stopping rule ## ## ##### Definition of sponsor's chosen stopping rule ## binomFixed <- seqDesign( prob.model = "proportions", arms = 2, null.hypothesis = .3, alt.hypothesis = 0.25, ratio = c(1., 1.), nbr.analyses = 1, test.type = "less", power = 0.80, alpha = 0.025 ) binomFixed.1700 <- update( binomFixed, sample.size=1700, power="calculate" ) bnd <- rbind( c(1-.0001, NA ), rep(NA,2), rep(NA,2), rep(NA,2), rep(NA,2) ) bnd <- seqBoundary( bnd, scale="P" ) sepsis.Sponsor <- update( binomFixed.1700, nbr.analyses=5, P=c(1,.75) ) sepsis.Sponsor <- update( sepsis.Sponsor, exact.constraint=bnd ) 1-seqBoundary( sepsis.Sponsor, "P" ) ##### ##### MONITORING OF SIMULATED CLINICAL TRIAL DATA ##### ##### Treatment arm: 25% mortality ##### Comparison arm: 35% mortality ##### ## ## ##### ##### First analysis after 200 subjects on each arm ##### ## interim1 <- read.csv( "http://rctdesign.org/ShortCourses/uwAugust2013/interim1Data.csv", header=TRUE ) ## ##### Monitoring on sample mean scale with re-estimation of sample size ## interim1.dsn <- seqMonitor(sepsis.Sponsor, response=interim1$resp1, treatment=interim1$tx1) plot(interim1.dsn) interim1.dsn ## ##### Alternative approach if sample size was not to be re-estimated ## interim1.maxN.dsn <- seqMonitor(sepsis.Sponsor, response=interim1$resp1, treatment=interim1$tx1, future.analyses=sampleSize(sepsis.Sponsor)[2:5]) plot(interim1.dsn,interim1.maxN.dsn,superpose.design=T, dsnLbls=c("Original Design","Maintain Power","Maintain Sample Size")) ## ##### ##### Second analysis after an additional 175 subjects on each arm ##### ## ## Simulate indicators of treatment (tx2) and response (resp2) ## for additional subjects interim2 <- read.csv( "http://rctdesign.org/ShortCourses/uwAugust2013/interim2Data.csv", header=TRUE ) ## ##### Monitoring on sample mean scale with re-estimation of sample size ## interim2.dsn <- seqMonitor(interim1.dsn, response=interim2$resp2, treatment=interim2$tx2) plot(interim2.dsn) interim2.dsn