我想从多元正态分布中生成 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
我认为强加特定的标准差会限制我可以获得的可能相关性。
确实如此吗?
如果有,是否有办法更接近所需的相关性?
答案 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