Hi Jane:

On Mon, Aug 23, 2010 at 8:05 PM, rusers.sh <rusers.sh@gmail.com> 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.
>

Using an example adapted from package mvtnorm:

library(mvtnorm)
sigma <- matrix(c(1, 0.5, 0.5, 0.5, 1, 0.5, 0.5, 0.5, 1), ncol = 3)
sigma
     [,1] [,2] [,3]
[1,]  1.0  0.5  0.5
[2,]  0.5  1.0  0.5
[3,]  0.5  0.5  1.0
x <- rmvnorm(n = 1000, mean = c(1, 5, 10), sigma = sigma)
head(x, 2)
           [,1]     [,2]      [,3]
[1,]  1.1830181 6.730525 10.687912
[2,]  2.2911587 5.978146  9.493432

cov(x)
          [,1]      [,2]      [,3]
[1,] 0.9725893 0.4894247 0.4902096
[2,] 0.4894247 0.9782143 0.4572949
[3,] 0.4902096 0.4572949 0.9656340
colMeans(x)
[1]  0.9901327  5.0008999 10.0162695

# Same example using mvrnorm() from MASS:

library(MASS)
x2 <- mvrnorm(n = 1000, mu = c(1, 5, 10), Sigma = sigma)
head(x2, 2)
           [,1]     [,2]      [,3]
[1,] -0.1559149 3.449327  7.967966
[2,] -0.7961951 4.636752  8.580032
cov(x2)
          [,1]      [,2]      [,3]
[1,] 1.0786150 0.4719868 0.5082440
[2,] 0.4719868 0.9608204 0.4819515
[3,] 0.5082440 0.4819515 1.0264072
colMeans(x2)
[1]  1.042077  5.011792 10.025397

Package mvtnorm also has a function to obtain samples from multivariate-t
distributions (rmvt). See the help pages of these functions for examples and
further details.

For simulating random fields, there are two packages of which I'm aware:
RandomFields and FieldSim. It might also be worth checking out the Spatial
Task View @ CRAN to see if anything else is available to help you.

HTH,
Dennis

  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.
>
>
> 2010/8/23 Ben Bolker <bbolker@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.
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>
>
> --
> -----------------
> Jane Chang
> Queen's
>

	[[alternative HTML version deleted]]

