The sampSize function implements a bisection search algorithm for sample size calculation. The user can hand over a general target function (via targFunc ) that is then iterated so that a certain target is achieved. The sampSizeMCT is a convenience wrapper of sampSize for multiple contrast tests using the power as target function.
upperN, lowerN: Upper and lower bound for the target sample size. lowerN defaults to floor(upperN/2).
targFunc, target: The target function needs to take as an input the vector of sample sizes in the different dose groups. For sampSize it needs to return a univariate number. For function targN it should return a numerical vector.
Example: targFunc could be a function that calculates the power of a test, and target the desired target power value.
For function sampSize the bisection search iterates the sample size so that a specific target value is achieved (the implicit assumption is that targFunc is monotonically increasing in the sample size).
Function targN simply calculates targFunc for a given set of sample sizes.
tol: A positive numeric value specifying the tolerance level for the bisection search algorithm. Bisection is stopped if the targFunc value is within tol of target .
alRatio: Vector describing the relative patient allocations to the dose groups up to proportionality, e.g. rep(1, length(doses)) corresponds to balanced allocations.
Ntype: One of "arm" or "total". Determines, whether the sample size in the smallest arm or the total sample size is iterated in bisection search algorithm.
verbose: Logical value indicating if a trace of the iteration progress of the bisection search algorithm should be displayed.
...: Arguments directly passed to the powMCT function in the sampSizeMCT and powN
function.
power, sumFct: power is a numeric defining the desired summary power to achieve (in sampSizeMCT ).
step: Only needed for functions targN and powN . Stepsize for the sample size at which the target function is calculated. The steps are calculated via seq(lowerN,upperN,by=step).
x, superpose, line.at, xlab, ylab: arguments for the plot method of targN and powN , additional arguments are passed down to the low-level lattice plotting routines.
Details
The targN functions calculates a general target function for different given sample sizes. The powN
function is a convenience wrapper of targN for multiple contrast tests using the power as target function.
Examples
## sampSize examples## first define the target function## first calculate the power to detect all of the models in the candidate setfmodels <- Mods(linear =NULL, emax = c(25), logistic = c(50,10.88111), exponential=c(85), betaMod=matrix(c(0.33,2.31,1.39,1.39), byrow=TRUE, nrow=2), doses = c(0,10,25,50,100,150), placEff=0, maxEff=0.4, addArgs = list(scal=200))## contrast matrix to usecontMat <- optContr(fmodels, w=1)## this function calculates the power under each model and then returns## the average power under all modelstFunc <-function(n){ powVals <- powMCT(contMat, altModels=fmodels, n=n, sigma =1, alpha=0.05) mean(powVals)}## assume we want to achieve 80% average power over the selected shapes## and want to use a balanced allocations## Not run:sSize <- sampSize(upperN =80, targFunc = tFunc, target=0.8, alRatio = rep(1,6), verbose =TRUE)sSize
## Now the same using the convenience sampSizeMCT functionsampSizeMCT(upperN=80, contMat = contMat, sigma =1, altModels=fmodels, power =0.8, alRatio = rep(1,6), alpha =0.05)## Alternatively one can also specify an S matrix## covariance matrix in one observation (6 total observation result in a## variance of 1 in each group)S <-6*diag(6)## this uses df = Inf, hence a slightly smaller sample size resultssampSizeMCT(upperN=500, contMat = contMat, S=S, altModels=fmodels, power =0.8, alRatio = rep(1,6), alpha =0.05, Ntype ="total")## targN examples## first calculate the power to detect all of the models in the candidate setfmodels <- Mods(linear =NULL, emax = c(25), logistic = c(50,10.88111), exponential=c(85), betaMod=matrix(c(0.33,2.31,1.39,1.39), byrow=TRUE, nrow=2), doses = c(0,10,25,50,100,150), placEff=0, maxEff=0.4, addArgs = list(scal=200))## corresponding contrast matrixcontMat <- optContr(fmodels, w=1)## define target functiontFunc <-function(n){ powMCT(contMat, altModels=fmodels, n=n, sigma =1, alpha=0.05)}powVsN <- targN(upperN =100, lowerN =10, step =10, tFunc, alRatio = rep(1,6))plot(powVsN)## the same can be achieved using the convenience powN function## without the need to specify a target functionpowN(upperN =100, lowerN=10, step =10, contMat = contMat, sigma =1, altModels = fmodels, alpha =0.05, alRatio = rep(1,6))## End(Not run)
References
Pinheiro, J. C., Bornkamp, B., and Bretz, F. (2006). Design and analysis of dose finding studies combining multiple comparisons and modeling procedures, Journal of Biopharmaceutical Statistics, 16 , 639--656
Pinheiro, J.C., Bornkamp, B. (2017) Designing Phase II Dose-Finding Studies: Sample Size, Doses and Dose Allocation Weights, in O'Quigley, J., Iasonos, A. and Bornkamp, B. (eds) Handbook of methods for designing, monitoring, and analyzing dose-finding trials, CRC press