Hypothesis-Testing

Stouffer 的 Z 分數方法:如果我們求和會怎樣𝑧2z2z^2代替𝑧zz?

  • August 1, 2013

我在表演具有相同零假設的獨立統計檢驗,並希望將結果合併為一個-價值。似乎有兩種“公認”的方法:Fisher 方法和 Stouffer 方法

我的問題是關於 Stouffer 的方法。對於每個單獨的測試,我都會獲得一個 z 分數. 在零假設下,它們中的每一個都服從標準正態分佈,所以總和遵循具有方差的正態分佈. 因此 Stouffer 的方法建議計算,它應該與單位方差呈正態分佈,然後將其用作聯合 z 分數。

這是合理的,但這是我想出的另一種方法,對我來說聽起來也很合理。作為每個來自標準正態分佈,平方和應該來自卡方分佈自由程度。所以可以計算並將其轉換為- 使用累積卡方分佈函數的值自由程度 (, 在哪裡是 CDF)。

但是,我什至在任何地方都找不到這種方法。它曾經使用過嗎?它有名字嗎?與 Stouffer 的方法相比,有哪些優點/缺點?還是我的推理有問題?

跳出的一個缺陷是 Stouffer 的方法可以檢測到,這是當一個備選方案始終正確時人們通常期望發生的情況,而卡方方法似乎沒有這樣做的能力。快速模擬表明情況確實如此。卡方方法在檢測單邊替代方案方面的威力較小。以下是兩種方法(紅色=斯托弗,藍色=卡方)的 p 值直方圖獨立迭代以及各種單方面的標準化效應從無() 通過標清 ()。

數字

更好的程序將有更多接近零的面積。對於所有正值如圖所示,該過程是 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)
               })

引用自:https://stats.stackexchange.com/questions/66300

comments powered by Disqus