This function can calculate power, required sample size/budget for desired power, or minimum detectable moderation effect size (MDMES) under a fixed budget in two-level MRTs. It also can perform conventional power analyses (e.g., required sample size, power, and MDMES calculation).
power.2m.mod(
cost.model = TRUE,
expr = NULL,
constraint = NULL,
sig.level = 0.05,
two.tailed = TRUE,
omega = NULL,
gamma = NULL,
power.mod = NULL,
m = NULL,
n = NULL,
J = NULL,
p = NULL,
icc = NULL,
r12 = NULL,
r22m = NULL,
q.mod = 1,
c1 = NULL,
c2 = NULL,
c1t = NULL,
gammalim = c(0, 5),
powerlim = c(1e-10, 1 - 1e-10),
Jlim = c(2.5, 1e+10),
mod.level = 2,
binary = TRUE,
mlim = NULL,
rounded = TRUE,
Q = 0.5
)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.
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.
Returned objects from function od.2m.mod; default is NULL;
if expr is specified, parameter values of icc,
r12, r22m,
c1, c2,
c1t, p, and n
used or solved in function od.2m.mod will
be passed to the current function;
only the values of p and n that specified or solved in
function od.2m.mod can be overwritten
if constraint is specified.
Specify the constrained values of p and/or n
in list format to overwrite those from expr; default value is NULL.
Significance level or type I error rate, default value is 0.05.
Logical; two-tailed tests if TRUE, otherwise one-tailed tests; default value is TRUE.
The treatment-by-site variance of the outcome.
The standardized moderated treatment effect.
Statistical power for the moderation effect. The default is .80.
Total budget, default is the total costs of sampling 60 sites.
The level-1 sample size per level-2 unit.
The number of sites.
The proportion of level-1 units within each level 2 unit to be assigned to treatment.
The unconditional intraclass correlation coefficient (ICC) in population or in each treatment condition.
The proportion of level-1 variance explained by covariates.
The proportion of variance of site-specific treatment effect explained by covariates.
The number of predictors at the moderator level in the moderation model.
The cost of sampling one level-1 unit in control condition.
The cost of sampling one level-2 unit (site).
The cost of sampling one level-1 unit in treatment condition.
The range for numerically solving the root of standardized moderation effect (gamma). Default is c(0, 5).
The range for solving the root of power (power) numerically,
default value is c(1e-10, 1 - 1e-10).
The range for solving the root of level-2 sample size
(J) numerically. Change the default values to a larger range
(e.g., starting with a smaller value) if
f() values at end points are not of opposite sign. For example,
use Jlim = c(1.5, 1e10).
The level of the moderator is at. The moderator is at level 1 if mod.level is 1, and at level 2 if mod.level is 2. The default is mod.level = 1.
Logical; The moderator is binary if TRUE, and continuous if FALSE. The default is TRUE.
The range for numerically solving the root of budget (m).
The default is NULL, which mlim = Jlim times the costs for each site and
its members.
Logical; round the values of p, n/J/K
that are from functions od.4
to two decimal places and integer, respectively if TRUE,
otherwise no rounding; default value is TRUE.
The proportion of units in one group for the binary moderator. Default is 0.5.
Statistical power.mod for a moderation effect.
myod <- od.2m.mod(icc = .2, r12 = .5, r22m = .5,
c1 = 10, c1t = 100, c2 = 50,
omega = .01, gamma = 0.1)
mypower <- power.2m.mod(expr = myod, m=myod$out$m, gamma = 0.1); mypower$out
mym <- power.2m.mod(expr = myod, power.mod = .80, gamma = 0.1); mym$out
myod <- od.2m.only.mod(icc = .2, r12 = .5, r22m = .5,
c1 = 10, c1t = 100, c2 = 50, omega = .01)
mypower <- power.2m.mod(expr = myod, power.mod = .8, gamma = 0.1)
mypower$out
Run the code above in your browser using DataLab