Calculate sample size for testing mediation effect in linear regression based on Vittinghoff, Sen and McCulloch's (2009) method.
1 2 3 4 5 6 7 8 9  ssMediation.VSMc(power,
b2,
sigma.m,
sigma.e,
corr.xm,
n.lower = 1,
n.upper = 1e+30,
alpha = 0.05,
verbose = TRUE)

power 
power for testing b_2=0 for the linear regression y_i=b0+b1 x_i + b2 m_i + ε_i, ε_i\sim N(0, σ_e^2). 
b2 
regression coefficient for the mediator m in the linear regression y_i=b0+b1 x_i + b2 m_i + ε_i, ε_i\sim N(0, σ_e^2). 
sigma.m 
standard deviation of the mediator. 
sigma.e 
standard deviation of the random error term in the linear regression y_i=b0+b1 x_i + b2 m_i + ε_i, ε_i\sim N(0, σ_e^2). 
corr.xm 
correlation between the predictor x and the mediator m. 
n.lower 
lower bound for the sample size. 
n.upper 
upper bound for the sample size. 
alpha 
type I error rate. 
verbose 
logical. 
The test is for testing the null hypothesis b_2=0 versus the alternative hypothesis b_2\neq 0 for the linear regressions:
y_i=b_0+b_1 x_i + b_2 m_i + ε_i, ε_i\sim N(0, σ^2_{e})
Vittinghoff et al. (2009) showed that for the above linear regression, testing the mediation effect is equivalent to testing the null hypothesis H_0: b_2=0 versus the alternative hypothesis H_a: b_2\neq 0.
The full model is
y_i=b_0+b_1 x_i + b_2 m_i + ε_i, ε_i\sim N(0, σ^2_{e}).
The reduced model is
y_i=b_0+b_1 x_i + ε_i, ε_i\sim N(0, σ^2_{e}).
Vittinghoff et al. (2009) mentioned that if confounders need to be included
in both the full and reduced models, the sample size/power calculation formula
could be accommodated by redefining corr.xm
as the multiple
correlation of the mediator with the confounders as well as the predictor.
n 
sample size. 
res.uniroot 
results of optimization to find the optimal sample size. 
The test is a twosided test. Code for onesided tests will be added later.
Weiliang Qiu stwxq@channing.harvard.edu
Vittinghoff, E. and Sen, S. and McCulloch, C.E.. Sample size calculations for evaluating mediation. Statistics In Medicine. 2009;28:541557.
minEffect.VSMc
,
powerMediation.VSMc
1 2 3 4  # example in section 3 (page 544) of Vittinghoff et al. (2009).
# n=863
ssMediation.VSMc(power = 0.80, b2 = 0.1, sigma.m = 1, sigma.e = 1,
corr.xm = 0.3, alpha = 0.05, verbose = TRUE)

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.