相関係数の統合方法
ここで扱う相関係数はピアソンの積率相関係数です。
研究名 | 標本の大きさ | 相関係数 |
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