general variance-based methodによるオッズ比の統合
統合オッズ比の推定
ただし,
統合オッズ比の95%信頼区間
均質性の検定
有意性の検定
Perlソースコード *ファイルはPeto methodのページで使用したものと同じ
#データファイルの読み込み $pathname="Peto.dat"; open MYFILE, "$pathname"; while (<MYFILE>) { chomp; @{"dat$."} = split /\t/; } $size=$.; close MYFILE; #wiとlogORiの計算 for($i=1;$i<=$size;$i++){ $w[$i]=(1/@{"dat$i"}[0]+1/@{"dat$i"}[1]+1/@{"dat$i"}[2]+1/@{"dat$i"}[3])**-1; $logOR[$i]=log((@{"dat$i"}[0]*@{"dat$i"}[3])/(@{"dat$i"}[1]*@{"dat$i"}[2])); } #統合オッズ比の推定値 for($i=1;$i<=$size;$i++){ $sum+=($w[$i]*$logOR[$i]); $sum2+=$w[$i]; } $ORv=exp($sum/$sum2); print "ORv = $ORv \n"; #統合オッズ比の95%信頼区間 $lower=exp(log($ORv)-1.96*sqrt(1/$sum2)); $upper=exp(log($ORv)+1.96*sqrt(1/$sum2)); print "95%C.I. = [$lower , $upper] \n"; #均質性の検定 for($i=1;$i<=$size;$i++){ $Q_1+=$w[$i]*($logOR[$i]-log($ORv))**2; } use Statistics::Distributions; $a=Statistics::Distributions::chisqrprob($size-1,$Q_1); print "Q_1 = $Q_1 \t (df=$size-1,p=$a) \n"; #有意性の検定 $Q_2=log($ORv)**2*$sum2; $b=Statistics::Distributions::chisqrprob(1,$Q_1); print "Q_2 = $Q_2 \t (df=1,p=$b) \n";
実行例
C:\Perl>vbm_odds.pl ORv = 0.783085002584917 95%C.I. = [0.70670451464622 , 0.867720678960714] Q_1 = 21.4797764115429 (df=17-1,p=0.16080) Q_2 = 21.8063398450552 (df=1,p=0.0000035758)
参考文献
[1]丹後俊郎『メタ・アナリシス入門-エビデンスの統合をめざす統計手法-』朝倉書店 P67, 68