Calculate Power for testing mediation effect in linear regression based on Vittinghoff, Sen and McCulloch's (2009) method.
powerMediation.VSMc(n,
b2,
sigma.m,
sigma.e,
corr.xm,
alpha = 0.05,
verbose = TRUE)
sample size.
regression coefficient for the mediator \(m\) in the linear regression \(y_i=b0+b1 x_i + b2 m_i + \epsilon_i, \epsilon_i\sim N(0, \sigma_e^2)\).
standard deviation of the mediator.
standard deviation of the random error term in the linear regression \(y_i=b0+b1 x_i + b2 m_i + \epsilon_i, \epsilon_i\sim N(0, \sigma_e^2)\).
correlation between the predictor \(x\) and the mediator \(m\).
type I error rate.
logical. TRUE
means printing power; FALSE
means not printing power.
power for testing if \(b_2=0\).
\(b_2\sigma_m\sqrt{1-\rho_{xm}^2}/\sigma_e\), where \(\sigma_m\) is the standard deviation of the mediator \(m\), \(\rho_{xm}\) is the correlation between the predictor \(x\) and the mediator \(m\), and \(\sigma_e\) is the standard deviation of the random error term in the linear regression.
The power 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 + \epsilon_i, \epsilon_i\sim N(0, \sigma^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 + \epsilon_i, \epsilon_i\sim N(0, \sigma^2_{e})$$
The reduced model is $$y_i=b_0+b_1 x_i + \epsilon_i, \epsilon_i\sim N(0, \sigma^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.
Vittinghoff, E. and Sen, S. and McCulloch, C.E.. Sample size calculations for evaluating mediation. Statistics In Medicine. 2009;28:541-557.
# NOT RUN {
# example in section 3 (page 544) of Vittinghoff et al. (2009).
# power=0.8
powerMediation.VSMc(n = 863, b2 = 0.1, sigma.m = 1, sigma.e = 1,
corr.xm = 0.3, alpha = 0.05, verbose = TRUE)
# }
Run the code above in your browser using DataLab