<<目次へ


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