返回MR专题首页

中介孟德尔随机化教程

从“是否有因果”进阶到“通过什么路径产生因果”

👋 新手先看:什么是中介MR?

中介MR用来拆解“暴露→结局”的总效应,判断其中有多少是通过中介因子传递的。

背景介绍

普通MR告诉你“有没有因果”;中介MR告诉你“因果链条是怎么走的”。常用于代谢因子、炎症指标、蛋白组学路径验证。

备注(统一三段)

适用人群:准备回答“通过哪条通路起作用”的机制问题型MR研究者。
常见错误:总效应接近0时强行解读中介比例,往往会产生不稳定结论。
论文写法:建议分别报告a、b、间接效应及CI,并在讨论中强调因果链条假设。

分析框架(3步法)

  1. 估计 总效应 c:暴露(X)对结局(Y)的MR效应。
  2. 估计 a 路径:暴露(X)对中介(M)的MR效应。
  3. 估计 b 路径:中介(M)对结局(Y)的MR效应(可用MVMR控制X)。
常见定义:间接效应 = a × b中介比例 = (a×b)/c

最小可复用代码模板

library(TwoSampleMR)
library(MVMR)
library(dplyr)

# Step 1) X -> Y(总效应 c)
mr_xy <- mr(harmonised_xy, method_list = c("mr_ivw"))
c_total <- mr_xy$b[mr_xy$method == "Inverse variance weighted"]

# Step 2) X -> M(路径 a)
mr_xm <- mr(harmonised_xm, method_list = c("mr_ivw"))
a_path <- mr_xm$b[mr_xm$method == "Inverse variance weighted"]

# Step 3) M -> Y(路径 b)
# 若担心X与M相关,建议用多变量MR估计M的条件效应
mv_res <- mv_multiple(mvdat)
b_path <- mv_res$result$b[mv_res$result$exposure == "mediator"]

# Step 4) 中介量化
indirect_effect <- a_path * b_path
mediation_prop <- indirect_effect / c_total

result <- tibble(
 total_effect = c_total,
 a_path = a_path,
 b_path = b_path,
 indirect_effect = indirect_effect,
 mediation_prop = mediation_prop
)
print(result)

结果报告建议(新手版)

常见坑位备注