# Generating correlated uniform random variable with R [duplicate]

I am trying to generate Correlated Uniform Random Variables with given mean, standard and correlation structure. I have looked through various posts in this topic including this(Can I use the Cholesky-method for generating correlated random variables with given mean?) and seems to can't get through.

Here is how I am proceeding.

set.seed(12)
corr_raw=matrix(0.7, nrow = 4,ncol=4) # Correlations
diag(corr_raw)=c(1,1,1,1)
colnames(corr_raw)<-c("A","B","C","D")
rownames(corr_raw)<-colnames(corr_raw)

Cov=(std_dev%*%t(std_dev))*corr_raw # covariance matrix

#mean and standard deviation
mu<-c(1,3,2,4)
std_dev<-0.4*mu #assumed std_dev = 0.4*mean

#Cholesky Decomposition matrix L
L<-chol(Cov, pivot =T)
Z<-matrix(nrow = 0,ncol=10000)

for (i in colnames(Cov))
{
#stddev(Unif)=(B-A)/sqrt(12)=1; and mean(Unif)=(B+A)/2=0; A=-sqrt(3) and B=+sqrt(3)
Z<- rbind(Z,runif(10000,-1.732,1.732))
}
x=mu+L%*%Z  #transform to get the desired mean and variance
corr<-cor(t(x)) #find correlation of the generated random variable x


However, the corr(x) and corr_raw does not match. What am I doing wrong ?

## marked as duplicate by Xi'an, Glen_b♦ r StackExchange.ready(function() { if (StackExchange.options.isMobile) return; $('.dupe-hammer-message-hover:not(.hover-bound)').each(function() { var$hover = $(this).addClass('hover-bound'),$msg = $hover.siblings('.dupe-hammer-message');$hover.hover( function() { $hover.showInfoMessage('', { messageElement:$msg.clone().show(), transient: false, position: { my: 'bottom left', at: 'top center', offsetTop: -7 }, dismissable: false, relativeToBody: true }); }, function() { StackExchange.helpers.removeMessages(); } ); }); }); Mar 5 '17 at 10:01

• One thing (though not the only one) with the correlation is that even with multivariate normals, the sample correlation won't match the population correlation. You have a much worse problem than the correlation one however. When you compute $Lz$ the result will no longer be uniform so it will not satisfy the conditions. – Glen_b Mar 5 '17 at 9:46
• Can you explain the exact conditions that must be satisfied? How is the "correlation structure" specified? – Glen_b Mar 5 '17 at 9:54
• Some of the issues with generating correlated uniforms are discussed here, along with some possible ways to think about generating correlated uniforms: Generate three correlated uniformly-distributed random variables – Glen_b Mar 5 '17 at 9:56
• @Glen_b thanks for your help. Looks like the links you provided and Richard's answer will solve the problem. – vivek Mar 5 '17 at 9:58
• @Glen_b correlation structure refers to the pairwise correlation between RVs. For example, in the above example there are four random variables and the correlation structure refers to the correlation matrix which contains data for the pairwise correlations. – vivek Mar 5 '17 at 10:11