结合应用于相同数据的不同统计测试的 p 值

机器算法验证 假设检验 可能性 统计学意义 多重比较 p 值
2022-03-28 12:35:02

尽管问题的标题看起来微不足道,但我想解释一下,这并不是微不足道的,因为它与在类似数据集中应用相同的统计测试来测试完全零假设的问题不同(荟萃分析,例如使用 Fisher 的方法来组合 p 值)。我正在寻找的是一种方法(如果它存在并且问题在统计术语中是否有效),它将结合来自两个不同统计测试(例如 t 测试和 u 测试,即使一个是参数,另一个不是),用于比较来自两个总体的两个样本的中心。到目前为止,我在网上搜索了很多,没有一个明确的答案。我能找到的最佳答案是基于 David Bickel ( http://arxiv.org/pdf/1111.6174.pdf ) 的博弈论概念。

一个非常简单的解决方案是投票方案。假设我有两个观察向量并且我想应用几个类似 t 的统计数据(t 检验, u-test, even 1-way ANOVA) 以检验两个基础分布的中心(均值、中位数等)与它们不相等的假设相等的假设,显着性水平为 0.05。假设我运行 5 个测试。如果我在 5 次测试中有 3 次的 p 值 < 0.05,那么说有足够的证据拒绝零分布是否合理?A=[a1,a2,...,an]B=[b1,b2,...,bn]

另一种解决方案是使用总概率定律还是完全错误的?例如,假设是拒绝空分布的事件。然后,使用 3 个测试(意味着的可能值为P,其中是在测试AT1T2T3P(T1)=P(T2)=P(T3)=1/3P(A)P(A)=P(A|T1)P(T1)+P(A|T2)P(T2)+P(A|T3)P(T3)P(A|Ti)Ti

如果答案很明显或问题太愚蠢,我深表歉意

3个回答

使用 Corone 提倡的多重测试校正是可以的,但它会花费你大量的力量,因为你的 p 值通常会很好地相关,即使使用 Hommel 校正也是如此。

有一种解决方案对计算要求很高,但在功率方面会做得更好。如果是你的 p 值,让考虑一下是您的新检验统计量:它越小,它就越反对零假设。p1,p2,,pnp=min(p1,,pn)p

您需要为的观察值值(称为)。为此,您可以在零假设下模拟 100 000 个数据集,并为每个这样的数据集计算一个这为您提供了零假设下您的值是的模拟值的比例。pppobsppp<pobs

你如何模拟零假设下的数据集?在你的情况下,如果我猜得好的话,你有案例和对照,以及 RNS-seq 数据来估计表达水平。为了模拟空值下的数据集,习惯上只是简单地随机排列病例/对照状态。

这种事情通常会被多重假设检验所涵盖,尽管它不是很典型的情况。

您正确地指出这与元分析不同,因为您将相同的数据用于多个测试,但多重假设测试仍然涵盖了这种情况。这里有点奇怪的是,您多次测试的假设几乎是同一个假设,然后您想要作为所有这些假设的交集的全局零假设 - 也许值得想知道为什么您觉得有必要这样做,但可能有正当理由。

如果您在进行一组更易于分析的测试,您可能会沿着联合交叉口测试路线走下去,但我认为这不会让您有任何收获,因此我建议您使用开箱即用的多重性校正。

我建议你先看看维基百科对这个主题的看法,但尽量不要陷入困境: http ://en.wikipedia.org/wiki/Multiple_comparisons

所以,你需要使用多重校正,并排除联合交集,大致你的选择如下

  • Bonferonni - 由 Holm-Bonferroni 严格控制,仅历史兴趣
  • Holm-Bonferroni - 对你有用,但会消耗你的力量(在你的情况下可能很多)
  • Sidak - 比 BH 更强大,但你不能使用它,因为你的 p 值是相关的
  • Hommel - 比 BH 更强大,你应该没问题,因为你的 p 值无疑是正相关的

您最大的问题是您很可能在不同的测试中得到非常相似的 p 值。霍默尔不应该为此惩罚你太多。

例如,您可以使用调整 R 中的 p 值p.adjust

p = c(0.03, 0.034, 0.041)
p.adjust(p, method = "bonferroni")
p.adjust(p, method = "holm")
p.adjust(p, method = "hommel")

> p.adjust(p, method = "bonferroni")
[1] 0.090 0.102 0.123
> p.adjust(p, method = "holm")
[1] 0.09 0.09 0.09
> p.adjust(p, method = "hommel")
[1] 0.041 0.041 0.041

这些方法都控制Family-wise Error Rate,这意味着如果您根据每个 p 值通过阈值依次测试每个 p 值,那么 1 个或多个错误的概率仍然控制在这意味着如果您拒绝一个或多个子假设,您可以拒绝全局假设,并且您的测试大小仍然控制在αα

正如我一开始所暗示的那样,这不会是你能做的最强大的攻击,但任何更复杂的攻击都需要更多的工作。


为什么这控制α

全局零假设是所有子零假设都为真。

如果 null 被拒绝,则让单个测试的结果为,取值为 1,否则为 0。Xi

由于无疑是正相关的,我们可以使用 Hommel 来控制 FWER。Xi

这种控制意味着一个或多个测试错误拒绝的概率被控制在α

因此, P((Xi)>0)α

因此,如果拒绝一个或多个子假设而拒绝全局假设,则全局检验的大小为α

如果您仍然感兴趣,我发现这篇论文似乎解决了在同一组 RNA-seq 数据上集成不同分析算法的问题:https ://www.ncbi.nlm.nih.gov/pmc/articles/ PMC4344485/它基本上提出了所有 p 值的加权和,并且权重基于每个算法的 ROC。论文名称为:Systematic integration of RNA-Seq统计算法,用于准确检测差异基因表达模式。