rand_with_cor {ibawds} | R Documentation |
Create a Random Vector With Fixed Correlation With Another Vector
Description
rand_with_cor()
creates a vector of random number that has
correlation rho
with a given vector y
.
Also mean and standard deviation of the random vector
can be fixed by the user. By default, they will be equal to the mean
and standard deviation of y
, respectively.
Usage
rand_with_cor(y, rho, mu = mean(y), sigma = sd(y))
Arguments
y |
a numeric vector |
rho |
numeric value between -1 and 1 giving the desired correlation. |
mu |
numeric value giving the desired mean |
sigma |
numeric value giving the desired standard deviation |
Value
a vector of the same length as y
that has correlation rho
with y
.
Source
This solution is based on an answer by whuber on Cross Validated.
Examples
x <- runif(1000, 5, 8)
# create a random vector with positive correlation
y1 <- rand_with_cor(x, 0.8)
all.equal(cor(x, y1), 0.8)
# create a random vector with negative correlation
# and fixed mean and standard deviation
y2 <- rand_with_cor(x, -0.3, 2, 3)
all.equal(cor(x, y2), -0.3)
all.equal(mean(y2), 2)
all.equal(sd(y2), 3)
[Package ibawds version 0.6.0 Index]