为什么当组合几个 p 值都等于?p ≫ 0.5p≫0.50.50.5

机器算法验证 p 值 Python 组合 p 值
2022-04-01 06:36:19
W = 0
for p in xrange(10):
    W += -2*log(0.5)
print "W:",W
final_p = 1 - scipy.stats.chi2.cdf(W, 2*10)
print "Final p-value",final_p

当我只使用最不显着的 p 值(零假设 p=0.5)时,为什么这会导致最终的 p 值为 0.84?这不应该也是 0.5 吗?因为如果您进行了完全没有说明的测试(= p=0.5 的含义),您难道不想要一个完全没有说明的结论吗?

我错过了费舍尔方法或 p 值的某些内容吗?

2个回答

Fisher 的方法测量 p 值的组合效应的方式是有效地查看它们的乘积(添加对数时可能的统计数据的排序与取乘积时的排序相同)。然后它会询问当 null 为真时,与随机 p 值相比,这是否异常低(在这种情况下,这将是从均匀分布中得出的)。

在产品中,非常小的值会“拉低”值而不是非常大的值会推高(与典型值相比)。大概率不能超过1,但小概率确实可以非常小。

根据该乘积度量,与随机均匀值的乘积相比,许多 0.5 的乘积是不寻常的。如果您的结果真的没有显示任何内容,那么您确实应该在其中看到一些小 p,但您没有。通过收集大量 0.5,您基本上进入了“比随机性更小的差异”领域……当然,这仍然不会导致您拒绝。

在此处输入图像描述

直方图是 1000 组 10 个随机(均匀)p 值的样本的 Fisher 组合 p 值,绿色曲线是真实密度,对于,棕色线标记当有 10 个值时,组合χ202pp=0.5

请注意,较大的值 - 右尾中的值 - 非常重要。十个值的集合正好位于左尾,因此它们不表示显着性。0.5

虽然 Fisher 的方法有很多值得称赞的地方(尤其是使用独立 p 值的乘积具有很多直观意义),但该指标实际上并没有什么神圣不可侵犯的地方。例如,您可以添加 p 值,并将该总和与随机 p 值总和的分布进行比较。按照这个标准,很多 p=0.5 会给你一个介于中间的值。(还有很多其他方法可以组合 p 值。不过,我大多只使用 Fisher,它通常捕获我想要“组合 p 值”来捕获的内容。)

0.5 的 p 值不是“最不显着的 p 值”。它表示,如果零假设为真,那么在 50% 的情况下,您会期望得到至少与观察到的结果一样极端的结果。您可以将其称为零假设下的“典型”结果,但肯定不是“最微不足道的”。p 值为 1 将是“最不显着的 p 值”。