[R] Generating a binomial random variable correlated with a
Ashraf Chaudhary
mchaudha at jhsph.edu
Sat Apr 16 22:46:07 CEST 2005
Ted:
Thank you for your help. All I want is a binomial random variable that is
correlated with a normal random variable with specified correlation. By
linear I mean the ordinary Pearson correlation. I tried the following two
methods, in each case the resulting correlation is substantially less than
the one specified.
Method I: Generate two correlated normals (using Cholesky decomposition
method) and dichotomize one (0/1) to get the binomial.
Method II: Generate two correlated variables, one binomial and one normal
using the Cholesky decomposition methods.
Here is how I did:
X <- rnorm(100)
Y <- rnorm(100)
r<- 0.7
Y1 <- X*r+Y*sqrt(1-r**2)
cor(X,Y1) # Correlated normals using Cholesky decomposition
cor(X>0.84,Y1) # Method I
##
X1 <- rbinom(100,1,0.5)
Y2 <- X1*r+Y*sqrt(1-r**2)
cor(X1,Y2); # Method II
I would like to thank Ben from whom I received the following response:
"Are you computing the correlation between the continuous variable and the
dichotomized variable with the formula for the biserial correlation?
If not, that is probably the root of your problem."
I looked at the biserial correlation which is a special case of Pearson
correlation between a continuous and binomial random variable.
I don't know how I can use it to generate the data. Any idea?
Regards,
Ashraf
-----Original Message-----
From: Ted Harding [mailto:Ted.Harding at nessie.mcc.ac.uk]
Sent: Saturday, April 16, 2005 3:22 AM
To: Ashraf Chaudhary
Cc: r-help at stat.math.ethz.ch
Subject: RE: [R] Generating a binomial random variable correlated with a
On 15-Apr-05 Ashraf Chaudhary wrote:
> Hi,
> I am posting this problem again (with some additional detail)
> as I am stuck and could not get it resolved as yet. I tried to
> look up in alternative sources but with no success. Here it is:
>
> I need to generate a binomial (binary 0/1) random variable linearly
> correlated with a normal random variable with a specified correlation.
> Off course, the correlation coefficient would not be same at each run
> because of randomness.
>
> If I generate two correlated normals with specified correlation and
> dichotomize one, the correlation of a normal and the binomial random
> variable would not be the same as specified.
>
> I greatly appreciate your help.
> Ashraf
Hello Ashraf,
I do not know what you mean by "a binomial random variable linearly
correlated with a normal random variable." You can certainly (and
indeed your dichotomy method is one way) generate a binomial and
a normal which are correlated. But apparently this gives a result
which is "not the same as specified": however, I cannot see in
your description a specification which would violated by the result
of doing so.
You cannot expect a binomial variable to be such that, for instance,
its expectation conditional on the value of a normal variable would
be a linear function of the normal variable, since this would
allow a situation where the expectation was greater than 1 or less
than 0. But I wonder what else you could possibly mean by "linearly
correlated".
Please therefore be more explicit about the specification of your
problem!
Trying to help,
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 16-Apr-05 Time: 08:21:42
------------------------------ XFMail ------------------------------
More information about the R-help
mailing list