power.2 {odr} | R Documentation |
Budget and/or sample size, power, MDES calculation for two-level CRTs detecting main effects
Description
This function can calculate required budget for desired power, power or minimum detectable effect size (MDES) under fixed budget for two-level cluster randomized trials (CRTs). It also can perform conventional power analyses (e.g., required sample size, power, and MDES calculation).
Usage
power.2(
cost.model = TRUE,
expr = NULL,
constraint = NULL,
sig.level = 0.05,
two.tailed = TRUE,
d = NULL,
power = NULL,
m = NULL,
n = NULL,
J = NULL,
p = NULL,
icc = NULL,
r12 = NULL,
r22 = NULL,
q = NULL,
c1 = NULL,
c2 = NULL,
c1t = NULL,
c2t = NULL,
dlim = NULL,
powerlim = NULL,
Jlim = NULL,
mlim = NULL,
rounded = TRUE
)
Arguments
cost.model |
Logical; power analyses accommodating costs and budget (e.g., required budget for desired power, power/MDES under fixed budget) if TRUE, otherwise conventional power analyses (e.g., required sample size, power, or MDES calculation); default value is TRUE. |
expr |
Returned object from function |
constraint |
Specify the constrained values of |
sig.level |
Significance level or type I error rate, default value is 0.05. |
two.tailed |
Logical; two-tailed tests if TRUE, otherwise one-tailed tests; default value is TRUE. |
d |
Effect size. |
power |
Statistical power. |
m |
Total budget. |
n |
The level-1 sample size per level-2 unit. |
J |
The total level-2 sample size. |
p |
The proportion of level-2 clusters/units to be assigned to treatment. |
icc |
The unconditional intraclass correlation coefficient (ICC) in population or in each treatment condition. |
r12 |
The proportion of level-1 variance explained by covariates. |
r22 |
The proportion of level-2 variance explained by covariates. |
q |
The number of level-2 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. |
c1t |
The cost of sampling one level-1 unit in treatment condition. |
c2t |
The cost of sampling one level-2 unit in treatment condition. |
dlim |
The range for solving the root of effect size ( |
powerlim |
The range for solving the root of power ( |
Jlim |
The range for searching the root of level-2 sample size ( |
mlim |
The range for searching the root of budget ( |
rounded |
Logical; round |
Value
Required budget (and/or required level-2 sample size), statistical power, or MDES depending on the specification of parameters. The function also returns the function name, design type, and parameters used in the calculation.
References
Shen, Z., & Kelcey, B. (2020). Optimal sample allocation under unequal costs in cluster-randomized trials. Journal of Educational and Behavioral Statistics, 45(4): 446–474. <https://doi.org/10.3102/1076998620912418>
Examples
# Unconstrained optimal design
myod1 <- od.2(icc = 0.2, r12 = 0.5, r22 = 0.5, c1 = 1, c2 = 5, c1t = 1, c2t = 50)
myod1$out # n = 8.9, p = 0.33
# ------- Power analyses by default considering costs and budget -------
# Required budget and sample size
mym.1 <- power.2(expr = myod1, d = 0.2, q = 1, power = 0.8)
mym.1$out # m = 3755, J = 130.2
#mym.1$par # parameters and their values used for the function
# Or, equivalently, specify every argument in the function
mym.1 <- power.2(d = 0.2, power = 0.8, icc = 0.2,
c1 = 1, c2 = 5, c1t = 1, c2t = 50,
r12 = 0.5, r22 = 0.5, n = 9, p = 0.33, q = 1)
# Required budget and sample size with constrained p
mym.2 <- power.2(expr = myod1, d = 0.2, q = 1, power = 0.8,
constraint = list(p = 0.5))
mym.2$out # m = 4210, J = 115.3
# Required budget and sample size with constrained p and n
mym.3 <- power.2(expr = myod1, d = 0.2, q = 1, power = 0.8,
constraint = list(p = 0.5, n = 20))
mym.3$out # m = 4568, J = 96.2
# Power calculation
mypower <- power.2(expr = myod1, q = 1, d = 0.2, m = 3755)
mypower$out # power = 0.80
# Power calculation under constrained p (p = 0.5)
mypower.1 <- power.2(expr = myod1, q = 1, d = 0.2, m = 3755,
constraint = list(p = 0.5))
mypower.1$out # power = 0.75
# MDES calculation
mymdes <- power.2(expr = myod1, q = 1, power = 0.80, m = 3755)
mymdes$out # d = 0.20
# ------- Conventional power analyses with cost.model = FALSE-------
# Required J
myJ <- power.2(cost.model = FALSE, expr = myod1, d = 0.2, q = 1, power = 0.8)
myJ$out # J = 130.2
#myJ$par # parameters and their values used for the function
# Or, equivalently, specify every argument in the function
myJ <- power.2(cost.model = FALSE, d = 0.2, power = 0.8, icc = 0.2,
r12 = 0.5, r22 = 0.5, n = 9, p = 0.33, q = 1)
# Power calculation
mypower1 <- power.2(cost.model = FALSE, expr = myod1, J = 130, d = 0.2, q = 1)
mypower1$out # power = 0.80
# MDES calculation
mymdes1 <- power.2(cost.model = FALSE, expr = myod1, J = 130, power = 0.8, q = 1)
mymdes1$out # d = 0.20