主题
05 · 敏感性分析
对应模块:R/07_sensitivity.R参考:Bowden 2015/2016;Verbanck 2018(MR-PRESSO);Hemani 2017(方向性);VanderWeele & Ding 2017(E-value)
作用
评估 MR 主结果的稳健性,重点检验排他性假设(多效性)与因果方向。这些方法需要足够工具,run_sensitivity() 在 ≥3 IV 时全套运行,否则跳过。每个检验都包在 safely() 里,单个失败不影响其余。
各检验
Cochran's Q(异质性)
mr_heterogeneity() 对 IVW 与 Egger 各算 Q 统计量。Q 显著提示 SNP 间效应异质,可能有多效性或无效工具。
MR-Egger 截距(定向多效性)
mr_pleiotropy_test() 检验 Egger 回归截距是否 ≠ 0。截距显著 → 存在定向多效性(工具经暴露以外的通路影响结局),违反排他性假设。截距 p 值写进 pair_summary 的 egger_intercept_p。
MR-PRESSO(离群检测 + 校正)
run_presso() 调 MRPRESSO::mr_presso(需 ≥4 IV 更稳):
- Global Test:整体是否存在多效性离群(
global_p); - Distortion Test:识别离群 SNP;
- 剔除离群后给校正估计。
参数 NbDistribution = 1000、SignifThreshold = 0.05。
Leave-one-out(LOO)与 single-SNP
mr_leaveoneout() 逐个剔除 SNP 重算,看结果是否被单个 SNP 驱动;mr_singlesnp() 给每个 SNP 单独的 Wald 估计(森林图用)。
方向性检验(Steiger directionality)
directionality_test() 在全局层面确认"暴露→结局"方向成立(补充 03 的逐 SNP Steiger 过滤)。
I²_GX(NOME 假设 / 回归稀释)
衡量 MR-Egger 的 NOME(No Measurement Error)假设违背程度。I²_GX < 0.9 提示 Egger 斜率被回归稀释,需 SIMEX 校正。代码手工实现(isq_gx):对暴露效应绝对值 y = |β_exp|、w = 1/se²,加权均值 μ,
E-value(未测混杂稳健性,STROBE-MR item 12b)
量化"要多强的未测混杂才能解释掉观察到的效应"。仅对 OR/RR 尺度有意义(evalue_or):令 rr = OR(若 <1 取倒数),
在 run_all.R 里对主估计(OR)算点估计 E-value 与靠近零效应一侧 CI 界的 E-value(evalue / evalue_ci)。
输出(进 pair_summary 的字段)
| 字段 | 来源 |
|---|---|
isq_gx | I²_GX |
egger_intercept_p | Egger 截距检验 |
presso_global_p | MR-PRESSO Global Test |
evalue / evalue_ci | E-value(点估计 / CI 界) |
heterogeneity / leaveoneout / single_snp / directionality / presso 完整对象保留在敏感性结果里,供 报告出图(森林 / 漏斗 / LOO)。
下一步:用共定位独立验证 MR 信号是否来自同一因果变异,见 共定位。