相関係数の統合方法
ここで扱う相関係数はピアソンの積率相関係数です。
| 研究名 | 標本の大きさ | 相関係数 |
| case_01 | n1 | r1 |
| case_02 | n2 | r2 |
| case_03 | n3 | r3 |
| case_k | nk | rk |
まずzvarを次式によって計算します。
ただし,
さらに,zvarの95%信頼区間は
統合相関係数は以下の関数によって求められます。
rvar=h(zvar)
このとき関数h(zvar)は,
☆Perlプログラム ⇒使用ファイル 丹後俊郎「メタ・アナリシス入門」朝倉書店p97-表4.2より引用
#データファイルの読み込み
$pathname="cor.dat";
open MYFILE, "$pathname";
while (<MYFILE>) {
chomp;
@{"case$."} = split /\t/;
}
$k=$.;
close MYFILE;
for($i=1;$i<=$k;$i++){
$n[$i]=@{"case$i"}[0];
$r[$i]=@{"case$i"}[1];
$z[$i]=1/2*log((1+$r[$i])/(1-$r[$i]));
$sum+=($n[$i]-3)*$z[$i];
$sum2+=($n[$i]-3);
}
$z_var=$sum/$sum2;
$lower=$z_var-1.96*sqrt(1/$sum2);
$upper=$z_var+1.96*sqrt(1/$sum2);
print "z_var=$z_var (95%C.I.=[$lower, $upper]) \n";
$r_var=h($z_var);
$r_low=h($lower);
$r_up=h($upper);
print "r_var=$r_var (95%C.I.=[$r_low, $r_up]) \n";
for($i=1;$i<=$k;$i++){
$Q1+=($n[$i]-3)*($z[$i]-$z_var)**2;
}
$Q2=$z_var**2*$sum2;
use Statistics::Distributions;
$a=Statistics::Distributions::chisqrprob($k-1,$Q1);
$b=Statistics::Distributions::chisqrprob(1,$Q2);
print "Q1=$Q1 (df=$k-1, p=$a) \n";
print "Q2=$Q2 (df=1, p=$b) \n";
sub h{
my $ans=(exp(2*$_[0])-1)/(exp(2*$_[0])+1);
return($ans);
}
☆実行例
C:\Perl>sample.pl z_var=0.147324074275664 (95%C.I.=[0.130535103405283, 0.164113045146044]) r_var=0.146267387848215 (95%C.I.=[0.129798708239361, 0.162655389577597]) Q1=76.8330923639777 (df=6-1, p=0.0000000000000038538) Q2=295.809034015039 (df=1, p=0.0000000000000000000...0026969)
参考文献
丹後俊郎『メタ・アナリシス入門』朝倉書店 P95〜97