Performes a sample size estimation for dose-proportionality studies using the power model for cossover (Latin square), parallel group designs or incomplete block designs via a confidence interval equivalence criterion.
sampleN.dp(alpha = 0.05, CV, doses, targetpower = 0.8, beta0, theta1 = 0.8,
theta2 = 1/theta1, design = c("crossover", "parallel", "IBD"),
dm=NULL, CVb, print = TRUE, details = FALSE, imax = 100)
Type 1 error. Usually set to 0.05.
Coefficient of variation. Is intra-subject CV for design="crossover"
and
CV of total variability in case of design="parallel"
Vector of dose values under study. At least two doses have to be given.
Power to achieve at least. Must be >0 and <1. Typical values are 0.8 or 0.9.
‘True’ or assumed slope of the power model. If missing defaults to 1+log(0.95)/log(rd)
where rd
is the ratio is the ratio of the highest to the lowest dose.
Has to be within slope acceptance range according to
1+log(theta1)/log(rd)
and 1+log(theta2)/log(rd)
. Otherwise, the
function issues an error.
Lower acceptance limit for the ratio of dose normalized means (Rdmn).
Transformes into slope acceptance range as described under item beta0
.
Upper acceptance limit for the ratio of dose normalized means (Rdmn).
Crossover design (default), parallel group design or incomplete block design (IBD). Crossover design means Latin square design with number of doses as dimension.
'Design matrix' of the incomplete block design (IBD) if design="IBD"
.
This matrix contains the sequences in rows and periods in columns.
The entry (i, j) of the design matrix corresponds to the dose (index) a subject
with i-th sequence gets in the j-th period.
Can be obtained f.i. via functions of package crossdes
. See examples.
Function bib.CL
returns some IBDs described by Chow & Liu.
Coefficient of variation of the between-subject variability.
Only necessary if design="IBD"
. Will be set to 2*CV if missing.
This is only a crude rule of thumb. Better obtain an estimate of CVb from a previous crossover study.
Set CVb=0
if all-effects-fixed model shall be used. This model gives
lower sample sizes than the mixed model with random subject effects
(random intercept).
If TRUE
(default) the function prints its results.
If set to FALSE
only the data.frame with the results will be returned.
If details=TRUE
the steps during sample size search will be shown. Defaults to FALSE
.
Maximum number of steps in sample size search. Defaults to 100. Adaption only in rare cases needed, if any.
A data.frame with the input and results will be returned.
The Sample size
column contains the total sample size.
This function is ‘experimental’ only, since it is not thorougly tested yet.
Especially for design="IBD"
reliable test cases are missing.
The sample size is estimated via iterative evaluation of power.dp()
.
Start value for the sample size search is taken from a large sample approximation.
The sample size is bound to number of dose or sequence groups as minimum.
Balanced designs are used although this is not absolutely necessary.
The estimated sample size gives always the total number of subjects (not subject/sequence in crossovers or subjects/group in parallel designs -- like in some other software packages).
Chow SC, Liu JP. Design and Analysis of Bioavailability and Bioequivalence Studies. Boca Raton: CRC Press; 3 edition 2009.
Patterson S, Jones B. Bioequivalence and Statistics in Clinical Pharmacology. Boca Raton: Chapman & Hall/CRC: 2006. p. 239. (contains presumably a bug)
Sethuraman VS, Leonov S, Squassante L, Mitchell TR, Hale MD. Sample size calculation for the Power Model for dose proportionality studies. Pharm Stat. 2007;6(1):35--41. 10.1002/pst.241
Hummel J, McKendrick S, Brindley C, French R. Exploratory assessment of dose proportionality: review of current approaches and proposal for a practical criterion. Pharm. Stat. 2009;8(1):38--49. 10.1002/pst.326
# NOT RUN {
# using all the defaults, i.e. crossover design, alpha=0.05
# theta1=0.8, theta2=1.25 but true slope slightly off 1
sampleN.dp(CV = 0.2, doses = c(1, 2, 8), beta0 = 1.02)
# should give n=18, power=0.854528
# }
# NOT RUN {
# incomplete block design with 5 doses, 3 periods
# from library(crossdes)
doses <- c(5, 25, 50, 100, 200)
CVb <- mse2CV(0.8)
levels <- length(doses)
per <- 3
block <- levels*(levels-1)/(per-1)
# IBD based on balanced minimal repeated measurements design
# gives n=30 and 10 sequences
ibd <- crossdes::balmin.RMD(levels, block, per)
sampleN.dp(CV = 0.2, doses = doses, beta0 = 1, design = "IBD", dm = ibd,
CVb = CVb, targetpower=0.9)
# }
Run the code above in your browser using DataLab