Be careful to be clear what you are referring to when you say "correlation is zero".
The commands x <- rnorm(100) y <- rnorm(100) will produce two vectors of given length (100) which (to within the effectively ignorable limitations of the ransom number generator) will have been produced independently. Hence the *theoretical* correlation is zero. If that is what you meant, then it is already answered. When you compute cor(x,y), however, the answer will in general be non-zero (though only rarely significantly so). This is because the numbers produced by the second independent run of rnrom() have an almost zero probability of producing two vectors for which the value of cor(x,y) = 0. However, possibly you mean that you want two vectors for which the result of cor(x,y) = 0. One way to achieve this is along the following lines: set.seed(54321) x <- rnorm(100) y0 <- rnorm(100) My <- mean(y0) Sy <- sd(y0) y1 <- lm(y0 ~ x)$res ; y1 <- y1/sd(y1) y <- My + y1*Sy mean(y0) # [1] 0.04497584 mean(y) # [1] 0.04497584 sd(y0) # [1] 0.848231 sd(y) # [1] 0.848231 cor(x,y0) # [1] 0.05556468 cor(x,y) # [1] 6.451072e-18 [effectively 0, to within rounding error] In this case, however, note that [A]: The 100 elements of y, given the values of x, are NOT independent of each other, since they satisfy the linear constraint x[1]*y[1] + x[2]*y[2] + ... + x[100]*y[100] - (sum(x))*[y[1] + y[2] + ... + y[100])/100 = 0 and therefore can vary only in 99 dimensions, not 100. Nor are they independent of the values of x (even though the numerical correlation is 0). On the other hand, the values of y0 are independent of the values of x, and of each other. You need to be very clear why you want to have two vectors x,y such that cor(x,y) = 0, since otherwise you are at risk of carrying out an invalid analysis. Hoping this helps, Ted. On 07-Jul-09 14:26:02, Stein, Luba (AIM SE) wrote: > Thank you for your help! > But is it possible to produe two vectors x and y with a given length > such that there correlation is zero. > > For me ist not enough just to simulate two vectors with there > correlation. > > Thank you, > Luba > > > > > -----Urspr?ngliche Nachricht----- > Von: ONKELINX, Thierry [mailto:thierry.onkel...@inbo.be] > Gesendet: Dienstag, 7. Juli 2009 15:51 > An: Stein, Luba (AIM SE); r-help@r-project.org > Betreff: RE: [R] Uncorrelated random vectors > > cor.test(rnorm(10000), rnorm(10000)) > > > ------------------------------------------------------------------------ > ---- > ir. Thierry Onkelinx > ~ Roger Brinner > > The combination of some data and an aching desire for an answer does > not > ensure that a reasonable answer can be extracted from a given body of > data. > ~ John Tukey > > -----Oorspronkelijk bericht----- > Van: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] > Namens Stein, Luba (AIM SE) > Verzonden: dinsdag 7 juli 2009 15:46 > Aan: r-help@r-project.org > Onderwerp: [R] Uncorrelated random vectors > > Hello, > > is it possible to create two uncorrelated random vectors for a given > distribution. > > In fact, I would like to have something like the function "rnorm" or > "rlogis" with the extra property that they are uncorrelated. > > Thanks for your help, > Luba -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 07-Jul-09 Time: 16:48:06 ------------------------------ XFMail ------------------------------ ______________________________________________ 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.