如何解释 p 值的 QQ 图

机器算法验证 p 值 QQ图
2022-02-04 18:12:27

我正在使用名为 plink ( http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml ) 的软件对疾病进行 GWAS SNP 关联研究。

通过关联结果,我得到分析的所有 SNP 的 p 值。现在,我使用这些 p 值的 QQ 图来显示非常低的 p 值是否与 p 值的预期分布(均匀分布)不同。如果 p 值偏离预期分布,则“可能”称该 p 值具有统计显着性。

正如您在 QQ 图中看到的那样,在顶部尾部,最后 4 个点有点难以解释。灰色的最后两个点表明这些 p 值在 p 值的预期分布中,而其他两个不在。

现在,如何解释这一点,根据 QQ 图,最后两个点的p 值较低但并不“显着”,而p 值较高的其他两个点是“显着的”?这怎么可能是真的?

在此处输入图像描述

2个回答

关于 p 值图分析的一个很好的参考是 [1]。

您看到的结果可能是由信号/效果仅存在于某些测试子集的事实驱动的。这些都高于接受范围。仅拒绝带外的 p 值确实是合理的,但也许更重要的是,您应该决定在选择选择程序(FWER、FDR)时要控制的误差标准是什么。您可以查阅 [2] 以了解该选择,并参考其中的参考资料以选择适当的多重测试程序。

[1] Schweder, T. 和 E. Spjotvoll。“同时评估许多测试的 P 值图。” Biometrika 69,没有。3(1982 年 12 月):493–502。doi:10.2307/2335984。

[2] 罗森布拉特,乔纳森。“多重测试错误率从业者指南。” ArXiv 电子版。特拉维夫大学,2013 年 4 月 17 日。http://arxiv.org/abs/1304.4920

这是一个较老的问题,但我发现它在第一次尝试解释 QQPlots 时很有帮助。我想我会添加到这些答案中,以防将来有更多人偶然发现这个问题。

我发现有点难以理解的是这些点到底是什么?我发现查看代码很容易弄清楚。

这是我改编的一些 R 代码,GWASTools::qqPlot它在 3 行中实现了 QQPlot:

simpleQQPlot = function (observedPValues) {
  plot(-log10(1:length(observedPValues)/length(observedPValues)), 
       -log10(sort(observedPValues)))
  abline(0, 1, col = "red")
}

这是一个例子。您有 5 个 p 值。simpleQQPlot 将从 0 和 1 之间的均匀分布中生成 5 个相应的 p 值。它们将是:.2 .4 .6 .8 和 1。所以 simpleQQPlot 预计您的最低 p 值约为 0.2,而您的最高 p 值约为1. simpleQQPlot 将对您的 pvalues 进行排序,并将每个 pvalues 与相应的生成值配对。所以 .2 将与您的最低 pvalue 配对,1 与您的最高 pvalue 配对,依此类推。然后,绘制这些成对的值(在取负对数之后),X 是生成的 p 值,Y 是成对的观察值。如果您的观察值也是从均匀分布中提取的,那么这些点应该大致位于直线上。由于排序,点总是会单调增加。所以每个后续点都会有一个更大的 X 和一个大于或等于 Y 的值。

所以在上面的原始示例中,第 9,997 个排序的 p 值约为 5.2,但如果遵循均匀分布,则预计约为 4.1。(注意:我实际上不确定上面绘制了多少 p 值——我只是猜到了 10k)。