生成具有固定相关但变化标准偏差的相关变量

时间:2016-10-14 12:23:15

标签: r simulation correlation

我想从多元正态分布中生成 k 变量,并在<tr ng-repeat="item in json.response.data"> <td>{{item.programdetails.title}}</td> <td>{{item.programdetails.description}}</td> <td>{{item.programdetails.createddate}}</td> <td>{{item.programdetails.updateddate}}</td> </select></td> </tr> 个变量上预先指定均值,标准差和固定相关性。

我尝试执行以下操作:

k

我的问题是我得到了理想的平均值和标准差,但相关性远远低于预期值。

set.seed(10)
library(MASS)

k=10 #number of variables
mu <- rep(1,k) #mean of each variable
nobs <- 10000 #number of observations
sd <- rep(c(1,5),each=5) #standard deviation of each variable
cor <- 0.9 #correlation across variables

M <- matrix(cor,nrow=k,ncol=k) #variance covariance matrix
diag(M) <- sd^2 #desired standard deviations

data <- mvrnorm(nobs,mu,Sigma=M) #generate data

我认为强加特定的标准差会限制我可以获得的可能相关性。

确实如此吗?

如果有,是否有办法更接近所需的相关性?

1 个答案:

答案 0 :(得分:3)

尝试此操作(根据您的要求生成协方差矩阵,根据定义,cov(x,y)=cor(x,y)*sigma_x*sigma_y)

M <- matrix(cor,nrow=k,ncol=k)*outer(sd,sd) # covariance matrix
diag(M) <- sd^2 #desired standard deviations

data <- mvrnorm(nobs,mu,Sigma=M) #generate data
mean(cor(data))
#[1] 0.9102620391642199