od.4m {odr} | R Documentation |
Optimal sample allocation calculation for four-level MRTs detecting main effects
Description
The optimal design of four-level
multisite randomized trials (MRTs) is to calculate
the optimal sample allocation that minimizes the variance of
treatment effect under fixed budget, which is approximately the optimal
sample allocation that maximizes statistical power under a fixed budget.
The optimal design parameters include
the level-1 sample size per level-2 unit (n
),
the level-2 sample size per level-3 unit (J
),
the level-3 sample size per level-4 unit (K
),
and the proportion of level-3 units to be assigned to treatment (p
).
This function solves the optimal n
, J
, K
and/or p
with and without constraints.
Usage
od.4m(
n = NULL,
J = NULL,
K = NULL,
p = NULL,
icc2 = NULL,
icc3 = NULL,
icc4 = NULL,
r12 = NULL,
r22 = NULL,
r32 = NULL,
r42m = NULL,
c1 = NULL,
c2 = NULL,
c3 = NULL,
c4 = NULL,
c1t = NULL,
c2t = NULL,
c3t = NULL,
omega = NULL,
m = NULL,
plots = TRUE,
plot.by = NULL,
nlim = NULL,
Jlim = NULL,
Klim = NULL,
plim = NULL,
varlim = NULL,
nlab = NULL,
Jlab = NULL,
Klab = NULL,
plab = NULL,
varlab = NULL,
vartitle = NULL,
verbose = TRUE,
iter = 100,
tol = 1e-10
)
Arguments
n |
The level-1 sample size per level-2 unit. |
J |
The level-2 sample size per level-3 unit. |
K |
The level-3 sample size per level-4 unit. |
p |
The proportion of level-3 units to be assigned to treatment. |
icc2 |
The unconditional intraclass correlation coefficient (ICC) at level 2. |
icc3 |
The unconditional intraclass correlation coefficient (ICC) at level 3. |
icc4 |
The unconditional intraclass correlation coefficient (ICC) at level 4. |
r12 |
The proportion of level-1 variance explained by covariates. |
r22 |
The proportion of level-2 variance explained by covariates. |
r32 |
The proportion of level-3 variance explained by covariates. |
r42m |
The proportion of variance of site-specific treatment effect explained by covariates. |
c1 |
The cost of sampling one level-1 unit in control condition. |
c2 |
The cost of sampling one level-2 unit in control condition. |
c3 |
The cost of sampling one level-3 unit in control condition. |
c4 |
The cost of sampling one level-4 unit. |
c1t |
The cost of sampling one level-1 unit in treatment condition. |
c2t |
The cost of sampling one level-2 unit in treatment condition. |
c3t |
The cost of sampling one level-3 unit in treatment condition. |
omega |
The standardized variance of site-specific treatment effect. |
m |
Total budget, default is the total costs of sampling 60 level-4 units. |
plots |
Logical, provide variance plots if TRUE, otherwise not; default value is TRUE. |
plot.by |
Plot the variance by |
nlim |
The plot range for n, default value is c(2, 50). |
Jlim |
The plot range for J, default value is c(2, 50). |
Klim |
The plot range for K, default value is c(2, 50). |
plim |
The plot range for p, default value is c(0, 1). |
varlim |
The plot range for variance, default value is c(0, 0.05). |
nlab |
The plot label for |
Jlab |
The plot label for |
Klab |
The plot label for |
plab |
The plot label for |
varlab |
The plot label for variance, default value is "Variance". |
vartitle |
The title of variance plot, default value is NULL. |
verbose |
Logical; print the values of |
iter |
Number of iterations; default value is 100. |
tol |
Tolerance for convergence; default value is 1e-10. |
Value
Unconstrained or constrained optimal sample allocation
(n
, J
, K
, and p
).
The function also returns the variance of the treatment effect,
function name, design type,
and parameters used in the calculation.
Examples
# Unconstrained optimal design #---------
myod1 <- od.4m(icc2 = 0.2, icc3 = 0.1, icc4 = 0.05, omega = 0.02,
r12 = 0.5, r22 = 0.5, r32 = 0.5, r42m = 0.5,
c1 = 1, c2 = 5, c3 = 25,
c1t = 1, c2t = 50, c3t = 250, c4 = 500,
varlim = c(0, 0.005))
myod1$out # output
# Plots by p and K
myod1 <- od.4m(icc2 = 0.2, icc3 = 0.1, icc4 = 0.05, omega = 0.02,
r12 = 0.5, r22 = 0.5, r32 = 0.5, r42m = 0.5,
c1 = 1, c2 = 5, c3 = 25,
c1t = 1, c2t = 50, c3t = 250, c4 = 500,
varlim = c(0, 0.005), plot.by = list(p = 'p', K = 'K'))
# Constrained optimal design with p = 0.5 #---------
myod2 <- od.4m(icc2 = 0.2, icc3 = 0.1, icc4 = 0.05, omega = 0.02,
r12 = 0.5, r22 = 0.5, r32 = 0.5, r42m = 0.5,
c1 = 1, c2 = 5, c3 = 25,
c1t = 1, c2t = 50, c3t = 250, c4 = 500,
varlim = c(0, 0.005), p = 0.5)
myod2$out
# Relative efficiency (RE)
myre <- re(od = myod1, subod= myod2)
myre$re # RE = 0.88
# Constrained optimal design with J = 20 #---------
myod3 <- od.4m(icc2 = 0.2, icc3 = 0.1, icc4 = 0.05, omega = 0.02,
r12 = 0.5, r22 = 0.5, r32 = 0.5, r42m = 0.5,
c1 = 1, c2 = 5, c3 = 25,
c1t = 1, c2t = 50, c3t = 250, c4 = 500,
varlim = c(0, 0.005), J = 20)
myod3$out
# Relative efficiency (RE)
myre <- re(od = myod1, subod= myod3)
myre$re # RE = 0.58
# Constrained n, J, K and p, no calculation performed #---------
myod4 <- od.4m(icc2 = 0.2, icc3 = 0.1, icc4 = 0.05, omega = 0.02,
r12 = 0.5, r22 = 0.5, r32 = 0.5, r42m = 0.5,
c1 = 1, c2 = 5, c3 = 25,
c1t = 1, c2t = 50, c3t = 250, c4 = 500,
varlim = c(0, 0.005), p = 0.5, n = 15, J = 20, K = 5)
myod4$out
# Relative efficiency (RE)
myre <- re(od = myod1, subod= myod4)
myre$re # RE = 0.46