複数の検定結果を統合する手法(2) Stouffer-method (Rosenthal, 1984)
対象とする研究は「片側検定」である。
meta-analysis では,結果のちらばり(variation)を検討しなくてはならない。
\[ \chi^2 = \sum_{i=1}^k (z_i-\bar{z})^2,\quad d.f.=k-1 \] 系統的な source of variation の有無を検討しなくてはならない
\[ r = \frac{Z_{overall}}{\sqrt{N}} \] $N$ は各研究におけるサンプルサイズの合計
reporting bias とか publication bias と呼ばれる,「有意な結果が得られなかった場合には公表されない」ことを考慮しなくてはならない。検定結果の統合により得られた $P$ 値 $p_{overall}$ が有意でなくなるためには,「有意ではない(あるいは逆の結果を与える)研究が後いくつあればよいか」という推定値($N fs_{.05}$)を計算することができる
\[ N fs_{.05} = \left ( \sum_{i=1}^k \frac{z_i}{1.645}\right )^2-k \]
これを R で書いてみると以下のようになる。
# 独立な検定結果の統合-2 { p <- c(0.1662, 0.0000023, 0.04559, -0.03981) # テストデータ n <- c(15, 60, 60, 60) # テストデータ z <- ifelse(p > 0, qnorm(abs(p), lower.tail=FALSE), -qnorm(abs(p), lower.tail=FALSE)) k <- length(p) z.overall <- sum(z)/sqrt(k) p.overall <- pnorm(z.overall, lower.tail=FALSE) chi.sq <- sum((z-mean(z))^2) cat("z(overall) =", z.overall, "\n") cat("p(overall) =", pnorm(z.overall, lower.tail=FALSE), "\n\n") cat("データの一様性の検定\n") cat("カイ二乗値 =", chi.sq, "\n") cat("自由度 =", k-1, "\n") cat("P 値 =", pchisq(chi.sq, k-1, lower.tail=FALSE), "\n\n") N <- sum(n) cat("effect size =", z.overall/sqrt(N), "\n\n") cat("N fs.05 =", (sum(z)/1.645)^2-k, "\n") }
テストデータは,各研究で得られた $P$ 値(片側検定)および,各研究の標本サイズ。4番目の $-0.03981$ は,他の研究と逆の結論を与えたもので,スクリプトの都合でそのような場合には $P$ 値に負の符号をつけて用意する(元の $0.03981$ を $Z$ に 変換してその符号を負にすることなどと同じ意味)。標本サイズは二群の比較のようなときはそれぞれの標本サイズの合計。 得られる結果は,
追加された meta-analysis により,以下の三つの所見が得られる。z(overall) = 2.743926 p(overall) = 0.003035464 データの一様性の検定 カイ二乗値 = 20.33347 自由度 = 3 P 値 = 0.000144763 effect size = 0.1964966 N fs.05 = 7.129429