[R] generate random numbers from a multivariate distribution with specified correlation matrix
David Winsemius
dwinsemius at comcast.net
Tue Aug 24 05:52:07 CEST 2010
On Aug 23, 2010, at 11:05 PM, rusers.sh wrote:
> Hi,
> If you see the link http://www.stata.com/help.cgi?drawnorm, and you
> can
> see an example,
> #draw a sample of 1000 observations from a bivariate standard
> normal distribution, with correlation 0.5.
> #drawnorm x y, n(1000) corr(0.5)
> This is what Stata software did. What i hope to do in R should be
> similar
> as that.
> It will be better to only need us to specify the correlation
> matrix, mean
> values and possible variances. One of my aim is to simulate random
> fields.
> Thanks.
?cov2cor
--
David.
>
>
> 2010/8/23 Ben Bolker <bbolker at gmail.com>
>
>> rusers.sh <rusers.sh <at> gmail.com> writes:
>>
>>> rmvnorm()can be used to generate the random numbers from a
>>> multivariate
>>> normal distribution with specified means and covariance matrix,
>>> but i
>> want
>>> to specify the correlation matrix instead of covariance matrix for
>>> the
>>> multivariate
>>> normal distribution.
>>> Does anybody know how to generate the random numbers from a
>>> multivariate
>>> normal distribution with specified correlation matrix? What about
>>> other non-normal
>>> distribution?
>>
>> What do you want the variances to be? If you don't mind that
>> they're
>> all equal to 1, then using your correlation matrix as the Sigma
>> argument
>> to the mvrnorm() [sic] function in MASS should work fine. They
>> have to
>> be defined as *something* ....
>> If you want multivariate distributions with non-normal marginal
>> distributions, consider the 'copula' package, but be prepared to do
>> some reading -- this is a fairly big/deep topic.
>>
>> good luck.
>>
>
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list