"相関係数の標準誤差"の計算について
掲題の件、そういうことです。
ここのCrossValidated 、及び参照されている論文を見ると、相関係数の標準誤差は
として計算されるらしい。記号の意味はお察し。
これをRで愚直にシミュレーションした結果とチェックしたら大体あってた(下図)ので、これでいいんだろうと。
Reproducibleなコード
library(MASS) # 指定した相関係数の標準誤差をシミュレーションから出す simulate <- function(size_unit, size_iter, correlation) { cors <- numeric(size_iter) for(i in seq_len(size_iter)){ x <- mvrnorm(size_unit, c(0, 0), matrix(c(1, correlation, correlation, 1.0), ncol=2)) cors[i] <- cor(x)[2] } sd(cors) } # 理論値とシミュレーションでーたを生成 set.seed(71) result <- list() # 一回の試行で引っ張るサンプル数 size_unit <- 10^4 for(correlation in (0.1*c(3, 5, 7, 9))){ title <- sprintf("Cor=%s", correlation) value <- c((1-correlation^2)/sqrt(size_unit), simulate(size_unit, 10^3, correlation)) type <- c("theoritical", "simulation") result[[length(result)+1]] <- data.frame(title, type, value) } result <- Reduce(rbind, result) # 可視化 library(ggplot2) ggplot(result, aes(title, value, fill=type)) + geom_bar(stat="identity", position = "dodge") + scale_fill_brewer(palette = "Set1")