Stouffer 的 Z 分数方法:如果我们求和会怎样z2z2代替zz?

机器算法验证 假设检验 p 值 多重比较 卡方分布 组合 p 值
2022-02-03 16:33:23

我在表演N具有相同零假设的独立统计检验,并希望将结果合并为一个p-价值。似乎有两种“公认”的方法:Fisher 方法和 Stouffer 方法

我的问题是关于 Stouffer 的方法。对于每个单独的测试,我都会获得一个 z 分数zi. 在零假设下,它们中的每一个都服从标准正态分布,所以总和Σzi遵循具有方差的正态分布N. 因此 Stouffer 的方法建议计算Σzi/N,它应该与单位方差呈正态分布,然后将其用作联合 z 分数。

这是合理的,但这是我想出的另一种方法,对我来说听起来也很合理。作为每个zi来自标准正态分布,平方和S=Σzi2应该来自卡方分布N自由程度。所以可以计算S并将其转换为p- 使用累积卡方分布函数的值N自由程度 (p=1XN(S), 在哪里XN是 CDF)。

但是,我什至在任何地方都找不到这种方法。它曾经使用过吗?它有名字吗?与 Stouffer 的方法相比,有哪些优点/缺点?还是我的推理有问题?

4个回答

跳出的一个缺陷是 Stouffer 的方法可以检测到zi,这是当一个备选方案始终正确时人们通常期望发生的情况,而卡方方法似乎没有这样做的能力。快速模拟表明情况确实如此。卡方方法在检测单边替代方案方面的威力较小。以下是两种方法(红色=斯托弗,蓝色=卡方)的 p 值直方图105独立迭代N=10以及各种单方面的标准化效应μ从无(μ=0) 通过0.6标清 (μ=0.6)。

数字

更好的程序将有更多接近零的区域。对于所有正值μ如图所示,该过程是 Stouffer 过程。


R代码

这包括用于比较的 Fisher 方法(已注释掉)。

n <- 10
n.iter <- 10^5
z <- matrix(rnorm(n*n.iter), ncol=n)

sim <- function(mu) {
  stouffer.sim <- apply(z + mu, 1, 
                    function(y) {q <- pnorm(sum(y)/sqrt(length(y))); 2*min(q, 1-q)})
  chisq.sim <- apply(z + mu, 1, 
                    function(y) 1 - pchisq(sum(y^2), length(y)))
  #fisher.sim <- apply(z + mu, 1,
  #                  function(y) {q <- pnorm(y); 
  #                     1 - pchisq(-2 * sum(log(2*pmin(q, 1-q))), 2*length(y))})
  return(list(stouffer=stouffer.sim, chisq=chisq.sim, fisher=fisher.sim))
}

par(mfrow=c(2, 3))
breaks=seq(0, 1, .05)
tmp <- sapply(c(0, .1, .2, .3, .4, .6), 
              function(mu) {
                x <- sim(mu); 
                hist(x[[1]], breaks=breaks, xlab="p", col="#ff606060",
                     main=paste("Mu =", mu)); 
                hist(x[[2]], breaks=breaks, xlab="p", col="#6060ff60", add=TRUE)
                #hist(x[[3]], breaks=breaks, xlab="p", col="#60ff6060", add=TRUE)
                })

深入了解测试统计数据的一种通用方法是推导出(通常是隐含的)潜在假设,这些假设将使该测试统计数据变得最强大。对于这个特殊情况,我和一个学生最近这样做了: http ://arxiv.org/abs/1111.1210v2 (修订版将出现在应用统计年鉴中)。

非常简要地总结(并且与另一个答案中的模拟结果一致)当“真正的”潜在影响都相等时,Stouffer 的方法将是最强大的;当底层效应正态分布在 0 左右时,Z^2 的总和将是最强大的。这是一个省略细节的轻微简化:有关更多详细信息,请参阅上面链接的 arxiv 预印本中的第 2.5 节。

略微 o/t:这两种方法的问题之一是由于自由度(Stuffer's 为 N;Fisher's 为 2N)导致的功率损失。为此开发了更好的荟萃分析方法,您可能需要考虑这些方法(例如,逆方差加权荟萃分析)。

如果您正在寻找小组内一些替代测试的证据,您可能需要查看 Donoho 和 Jin 的更高批评统计:https ://projecteuclid.org/euclid.aos/1085408492

为了回答这个问题并为任何进一步的读者:它曾经使用过吗?,Cousins (2008)在 arXiv 上有一篇详尽的论文,其中列出并回顾了几种替代方法。提议的那个似乎没有出现。