【发布时间】:2016-05-11 14:13:57
【问题描述】:
我想生成N 数量的随机变量,每个变量之间都有固定的相关p。
变量应该有mean = 1和std = 5
N=10 #number of variables
mu <- rep(1,N) #means
p=0.7 #correlation
Sigma <- matrix(p,ncol=N,nrow=N) #variance covariance matrix
diag(Sigma) <- 5 #standard deviations
library(MASS)
set.seed(12)
data <- mvrnorm(10000,mu,Sigma)
但是,得到的标准差不是 5。
apply(data,2,sd)
[1] 2.264853 2.219811 2.224703 2.245595 2.216712 2.236484 2.240794 2.220532 2.227445
[10] 2.247943
有没有一种系统的方法可以改变标准差,同时保持其他参数不变?
【问题讨论】:
-
我很确定 Sigma 是方差-协方差矩阵,所以如果你想要标准差为 5,你应该给它
diag(Sigma) <- 25。请注意,2.264853^2是 5.129559,非常接近 5...
标签: r simulation normal-distribution