<<目次へ


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];
        $logRR[$i]=log((@{"dat$i"}[0]/$n1[$i])/(@{"dat$i"}[2]/$n0[$i]));
        $w[$i]=(@{"dat$i"}[1]/(@{"dat$i"}[0]*$n1[$i])+
                @{"dat$i"}[3]/(@{"dat$i"}[2]*$n0[$i]))**-1;
        $sum+=$w[$i]*$logRR[$i];
        $sum2+=$w[$i];
}
$RRv=exp($sum/$sum2);
print "RRv = $RRv \n";

#統合リスク比の95%信頼区間
$lower=exp(log($RRv)-1.96*sqrt(1/$sum2));
$upper=exp(log($RRv)+1.96*sqrt(1/$sum2));
print "95%C.I. = [$lower , $upper] \n";

#均質性の検定
for($i=1;$i<=$k;$i++){
        $Q1+=$w[$i]*($logRR[$i]-log($RRv))**2;
}
use Statistics::Distributions;
$a=Statistics::Distributions::chisqrprob($k-1,$Q1);
print "Q1 = $Q1\t(df=$k-1,p=$a) \n";

#有意性の検定
$Q2=log($RRv)**2*$sum2;
$b=Statistics::Distributions::chisqrprob(1,$Q2);
print "Q2 = $Q2\t(df=1,p=$b) \n";


実行例

C:\Perl>sample.pl
RRv = 0.899874923481587
95%C.I. = [0.852547969286044 , 0.949829108840793]
Q1 = 22.6598843820859   (df=17-1,p=0.12313)
Q2 = 14.6488130170813   (df=1,p=0.00012952)




参考文献

丹後俊郎『メタ・アナリシス入門』朝倉書店 P75