我试图弄清楚如何将相关矩阵(R)转换为协方差矩阵(S)以输入到仅接受 S(rmvnorm("mvtnorm")在 R 中)的随机数生成器中
library("mvtnorm")
TRUTH= 0.8 # target correlation value between X1 and X2
R <- as.matrix(data.frame(c(1, TRUTH), c(TRUTH, 1)))
V <- diag(c(sqrt(1), sqrt(1))) # diagonal matrix of sqrt(variances)
S <- V %*% R %*% V
cor(rmvnorm(100, sigma=S) )
# repeat this to get an idea of the variance around Pearson's estimator
方差不等于 1 的实例
V <- diag(c(sqrt(3), sqrt(2)))
S <- V %*% R %*% V
cor(rmvnorm(100, sigma=S) )
这似乎是正确的,但我希望专家批评。