Fisher 的 p 值组合方法——下尾呢?

机器算法验证 r p 值 组合 p 值
2022-04-06 12:27:46

我有一堆独立的 p 值,现在我想使用 Fisher 方法将它们组合起来。每个单独的 p 值都来自单边测试。我对费舍尔方法测试的“方面”有点困惑,即当我在 R 中计算费舍尔方法 p 值时,我使用:

1 - pchisq( -2*sum(log(p-values)), df)

哪里df = 2*length(p-values)

这是单方面的测试吗?应该是因为当检验统计-2*sum(log(p-values))量远小于时df,Fisher 的 p 值接近 1。这里应该有问题吧?如果我的检验统计量非常小,我应该如何(或者我应该?)拒绝空值?我只是对“接近 1”的 p 值感到不舒服。

顺便说一下,我用的是检验模型拟合优度的方法,小p值表示模型失拟。

1个回答

i) 首先,一个建议:

使用pchisq( -2*sum(log(p-values)), df, lower.tail=FALSE)而不是-对于小 p 值1- ...,您最终可能会获得更高的准确性。要查看它们有时会给出不同的结果,请尝试以下操作:

 x=70;c(1-pchisq(x,1),pchisq(x,1,lower.tail=FALSE))

ii) 是的,它是片面的。卡方统计量的小值表明分量 p 值往往很大(即,缺乏反对整体 null 的证据)。想象一下,您正在进行 t 检验,样本均值非常非常接近……即|t|异常小。你会因为它们非常接近而拒绝它们相等的原假设吗?

显然不是。您可能会得出其他错误的结论(例如您的一个假设可能是错误的,或者您使用了非常糟糕的测试,或者您的计算可能是错误的,或者有人篡改了数据,或者......) - 但您不会得出结论手段不同,因为它们非常接近!

确实-在这种情况下您会怎么做:

> t.test(x,y,var.equal=TRUE)

    Two Sample t-test

data:  x and y
t = 1e-04, df = 18, p-value = 0.9999
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.7213824  0.7214315
sample estimates:
 mean of x  mean of y 
-0.2161466 -0.2161711 

所以有一个两个样本的t检验p 非常接近 1 (~0.999944)。你得出什么结论?

那么现在,在拟合优度的情况下,真正接近 1 的 p 值可能会告诉你什么样的事情?