library(mediation)
library(readxl) # 用于读取Excel文件
library(officer) # 用于创建Word文档
library(ggplot2) # 用于绘图
set.seed(123456)
#single
data <- read_excel("C:/Users/lenovo/Desktop/new_analysis_teenfood_mediation.xlsx")
model_mediator <- lm(fgf21 ~ BMI, data = data)
model_outcome <- lm(var29 ~ BMI + fgf21, data = data)
mediation_result <- mediate(model_mediator, model_outcome, treat = "BMI", mediator = "fgf21", boot = TRUE, sims = 1000)
summary(mediation_result)
summary(model_outcome)
plot(mediation_result)
以上代码是以BMI为自变量,fgf21为中介变量,var29为因变量,探讨fgf21在BMI和var29中的中介作用。种子点可以自己设置。在R中运行以后,生成的结果如下:
Causal Mediation Analysis
Nonparametric Bootstrap Confidence Intervals with the Percentile Method
Estimate 95% CI Lower 95% CI Upper p-value
ACME 0.03878 0.01058 0.07 0.006 **
ADE 0.07757 0.00284 0.16 0.042 *
Total Effect 0.11635 0.04723 0.19 <2e-16 ***
Prop. Mediated 0.33327 0.08242 0.95 0.006 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Sample Size Used: 104
Simulations: 1000
> summary(model_outcome)
Call:
lm(formula = var29 ~ BMI + fgf21, data = data)
Residuals:
Min 1Q Median 3Q Max
-3.4973 -0.8360 0.0974 0.8952 2.9218
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -5.31089 1.00836 -5.267 7.86e-07 ***
BMI 0.07757 0.03494 2.220 0.02862 *
fgf21 0.54664 0.18866 2.898 0.00461 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.445 on 101 degrees of freedom
(因为不存在,2个观察量被删除了)
Multiple R-squared: 0.1748, Adjusted R-squared: 0.1585
F-statistic: 10.7 on 2 and 101 DF, p-value: 6.113e-05
重点需要关注以下几个指标:
ACME表示中介效应的估计值,ADE表示直接效应的估计值,总效应:Total effect,需要重点关注这三个指标是否符合以下要求:①置信区间是否横跨0,置信区间不包含零 = 显著效应存在 (效果真实存在)。置信区间包含零 = 效应不显著 (效果可能为零,无法确定效果存在)。②他们的P值是否有显著性意义。 置信区间不包括0,且P值显著,则说明是有中介效应的。
承接上面,一般结果的显示方式是:
对应的结果数据如下:需要的数值为,ACME、ADE的值就是estimate的值,置信区间,以及P值。总的中介效应的prop.mediated的Estimate的数值。
summary(mediation_result)
Causal Mediation Analysis
Nonparametric Bootstrap Confidence Intervals with the Percentile Method
Estimate 95% CI Lower 95% CI Upper p-value
ACME 0.08916 0.00477 0.23 0.034 *
ADE 0.20424 0.05567 0.35 0.016 *
Total Effect 0.29340 0.13355 0.47 <2e-16 ***
Prop. Mediated 0.30389 0.02118 0.74 0.034 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Sample Size Used: 22
Simulations: 1000
> summary(model_outcome)
Call:
lm(formula = Acc_L ~ t2d + fgf21, data = data)
Residuals:
Min 1Q Median 3Q Max
-0.52623 -0.11906 0.04607 0.14424 0.32314
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.91085 0.26044 -3.497 0.00241 **
t2d 0.20424 0.09486 2.153 0.04437 *
fgf21 0.13238 0.06213 2.131 0.04640 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1996 on 19 degrees of freedom
(因为不存在,4个观察量被删除了)
Multiple R-squared: 0.4636, Adjusted R-squared: 0.4071
F-statistic: 8.209 on 2 and 19 DF, p-value: 0.002695