general variance-based methodによるリスク差の統合
統合リスク差の推定
ただし,
統合リスク差の95%信頼区間
均質性の検定
有意性の検定
☆Perlソースコード *使用ファイルはPeto methodのページで用いたものと同じ
#データファイルの読み込み $pathname="Peto.dat"; open MYFILE, "$pathname"; while (<MYFILE>) { chomp; @{"dat$."} = split /\t/; } $k=$.; close MYFILE; #統合リスク差の推定 for($i=1;$i<=$k;$i++){ $n1[$i]=@{"dat$i"}[0]+@{"dat$i"}[1]; $n0[$i]=@{"dat$i"}[2]+@{"dat$i"}[3]; $w[$i]=(((@{"dat$i"}[0]*@{"dat$i"}[1])/$n1[$i]**3) +((@{"dat$i"}[2]*@{"dat$i"}[3])/$n0[$i]**3))**-1; $RD[$i]=@{"dat$i"}[0]/$n1[$i]-@{"dat$i"}[2]/$n0[$i]; $sum_wRD+=$w[$i]*$RD[$i]; $sum_w+=$w[$i]; } $RDv=$sum_wRD/$sum_w; print "RDv = $RDv \n"; #統合リスク比の95%信頼区間 $lower=$RDv-1.96*sqrt(1/$sum_w); $upper=$RDv+1.96*sqrt(1/$sum_w); print "95%C.I. = [$lower , $upper] \n"; #均質性の検定 for($i=1;$i<=$k;$i++){ $Q1+=$w[$i]*($RD[$i]-$RDv)**2; } use Statistics::Distributions; $a=Statistics::Distributions::chisqrprob($k-1,$Q1); print "Q1 = $Q1 \t (df=$k-1,p=$a) \n"; #有意性の検定 $Q2=($RDv**2)*$sum_w; $b=Statistics::Distributions::chisqrprob(1,$Q2); print "Q2 = $Q2 \t (df=1,p=$b) \n";
☆実行例
C:\Perl>sample.pl RDv = -0.0624201215933927 95%C.I. = [-0.0874728627875913 , -0.0373673803991941] Q1 = 22.192393019482 (df=17-1,p=0.13709) Q2 = 23.8479393989175 (df=1,p=0.0000010425)
参考文献
丹後俊郎『メタ・アナリシス入門』朝倉書店 P79,80