飛び出す欠点の1つは、Stoufferの方法がシステマティックシフトを検出できることです。簡単なシミュレーションにより、これが事実であることがわかります。カイ二乗法は、片側の代替案を検出するのにそれほど強力ではありません。ここで(赤=ストーファー、青=カイ二乗)のための両方の方法によるp値のヒストグラムでと独立した反復回数と各種片面標準効果なしの範囲は、()スルー SD()。z私105N= 10μμ = 00.6μ = 0.6
より良い手順では、ゼロに近い領域が増えます。示されているすべての正の値に対して、その手順はストーファー手順です。μ
Rコード
これには、比較のためのフィッシャーの方法(コメント化)が含まれます。
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)
})