じつは(というほどのこともないが)、相関係数(Pearson's product-moment correlation)の信頼区間の算出方法をよく理解していなかったので勉強した。いままではR標準の cor.test() に頼ってました。
このページを参考にさせてもらった。母相関の検定と推定
数理的な話は理解していないが、rをフィッシャーのZ変換でzに変換したうえで、正規分布に基いて計算するという手続きのようだ。
> #ある程度相関のあるデータ (n=1000)を生成 > x <- rnorm(1000) > y <- rnorm(1000)+x > plot(x,y,cex=.2);abline(lm(y~x),col=2) > > r <- cor(x,y) > z <- (1/2)*log((1+r)/(1-r)) > n <- length(x) > zz.min <- z-(1.96/sqrt(n-3)) > zz.max <- z+(1.96/sqrt(n-3)) > > #逆変換 > r.min <- (exp(2*zz.min)-1)/(exp(2*zz.min)+1) > r.max <- (exp(2*zz.max)-1)/(exp(2*zz.max)+1) > > #出力 > r.min [1] 0.6870705 > r.max [1] 0.7471768 > #比較用 > cor.test(x,y) Pearson's product-moment correlation data: x and y t = 32.631, df = 998, p-value < 2.2e-16 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.6870711 0.7471763 sample estimates: cor 0.7184622