Skip to content

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_summaryegger_intercept_p

MR-PRESSO(离群检测 + 校正)

run_presso()MRPRESSO::mr_presso(需 ≥4 IV 更稳):

  • Global Test:整体是否存在多效性离群(global_p);
  • Distortion Test:识别离群 SNP;
  • 剔除离群后给校正估计

参数 NbDistribution = 1000SignifThreshold = 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²,加权均值 μ

Q=w(yμ)2,IGX2=max(0, Q(k1)Q)

E-value(未测混杂稳健性,STROBE-MR item 12b)

量化"要多强的未测混杂才能解释掉观察到的效应"。仅对 OR/RR 尺度有意义(evalue_or):令 rr = OR(若 <1 取倒数),

E-value=rr+rr(rr1)

run_all.R 里对主估计(OR)算点估计 E-value 与靠近零效应一侧 CI 界的 E-value(evalue / evalue_ci)。

输出(进 pair_summary 的字段)

字段来源
isq_gxI²_GX
egger_intercept_pEgger 截距检验
presso_global_pMR-PRESSO Global Test
evalue / evalue_ciE-value(点估计 / CI 界)

heterogeneity / leaveoneout / single_snp / directionality / presso 完整对象保留在敏感性结果里,供 报告出图(森林 / 漏斗 / LOO)。

下一步:用共定位独立验证 MR 信号是否来自同一因果变异,见 共定位

个人科研与运维文档 · 内容持续修订