Re: Generating a Matrix of Random values with a specified Correlation
- From: Robert Israel <israel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 25 Sep 2008 12:17:05 -0500
willgarrison@xxxxxxxxx writes:
I'm trying to generate two columns of random values where each value
is between 1 and 5 where the matrix as a whole has a specified
correlation.
Ideally this is what I'm looking for:
Example algorithm:
1. Generate 20 random values between 1 and 5 in array A.
2. Generate 20 random values between 1 and 5 in array B.
3. Create a 3rd array (array C), where array B is sorted so that array
A and array C have a correlation of X.
Does anyone have any ideas on how to do this?
This may be a horrible way to solve this problem. If so, does anyone
have any ideas on how else I could go about it?
Start with your two arrays A and B. Let a=Var(A), b=Var(B), c=Cov(A,B),
so the (Pearson) correlation of A and B is rho = c/sqrt(a b). Let's
suppose the desired correlation x > rho (where of course x <= 1).
Consider C = tA + (1-t)B, where 0 <= t <= 1.
We have Cov(A,C) = ta + (1-t) c and
Var(C) = t^2 a + 2 t (1-t) c + (1-t)^2 b so the correlation of A and C
is (ta + (1-t)c)/sqrt(a(t^2 a + 2t(1-t)c + (1-t)^2 b)).
Set this equal to x and solve for t: there should be exactly one solution
in the interval 0 <= t <= 1.
On the other hand, if -1 <= x < rho,
try C = t R + (1-t) B where each R_j = 6 - A_j.
--
Robert Israel israel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Department of Mathematics http://www.math.ubc.ca/~israel
University of British Columbia Vancouver, BC, Canada
.
- Follow-Ups:
- Re: Generating a Matrix of Random values with a specified Correlation
- From: willgarrison
- Re: Generating a Matrix of Random values with a specified Correlation
- References:
- Generating a Matrix of Random values with a specified Correlation
- From: willgarrison
- Generating a Matrix of Random values with a specified Correlation
- Prev by Date: Re: What is the ratio of primes n converging with 2n+1 to prime ?
- Next by Date: Re: Series
- Previous by thread: Re: Generating a Matrix of Random values with a specified Correlation
- Next by thread: Re: Generating a Matrix of Random values with a specified Correlation
- Index(es):
Relevant Pages
|