p値の統合方法
p値を統合する方法は逆正規法とFisherの方法とがあります。
逆正規法によるp値の統合
まずは収集された片側p値から正規分布のパーセント点を求め,それを
zp1, zp2, zp3, zpk
とします。
Fisherの方法によるp値の統合
Fisherの方法では収集されたp値をパーセント点へと変換する必要はありませんし,扱われるp値は片側p値ではなく両側p値であることに注意してください。
☆Perlプログラム ⇒使用ファイル
#データファイルの読み込み
$pathname="p.dat";
open MYFILE, "$pathname";
while (<MYFILE>) {
chomp;
@{"case$."} = split /\t/;
}
$k=$.;
close MYFILE;
use Statistics::Distributions;
for($i=1;$i<=$k;$i++){
$p_value[$i]=@{"case$i"}[0];
$zp[$i]=Statistics::Distributions::udistr($p_value[$i]); #p値からパーセント点を求める
$sum+=$zp[$i];
$sum2+=log($p_value[$i]);
}
$in=1/sqrt($k)*$sum;
$a=Statistics::Distributions::uprob($in);
$fisher=-2*$sum2;
$b=Statistics::Distributions::chisqrprob(2*$k,$fisher);
$c=$b/2;
print "inverse normal method:\n \t$in (p=$a) \n";
print "Fisher's method:\n \t$fisher (df=2*$k, both_p=$b, one side_p=$c) \n";
☆実行例
C:\Perl>sample.pl
inverse normal method:
1.7016209242273 (p=0.044413)
Fisher's method:
17.7088342926937 (df=2*6, both_p=0.12482, one side_p=0.06241)
参考文献
丹後俊郎『メタ・アナリシス入門』朝倉書店 P99,100