我想在r中生成与我的第一个向量相关的第二个向量。第一个向量按如下方式创建:
x <- rbinom(n=10,1,p=0.8)
x
[1] 0 0 1 0 1 1 1 1 0 0
我的第二个向量应该生成一个定义的相关性,例如0.8。我知道你可以用mvrnorm()来表示正态分布,但我不知道怎么表示二项分布。我试图找到一些解决方案,但这些建议对我来说有点太复杂了,或者我不能应用到我的代码中。
我支持您访问Cross Validated的建议。不清楚你打算如何使用相关二项分布。假设你从一个矢量开始,你想在第一个矢量的基础上创建第二个矢量,你所需要做的就是调整第二个矢量的概率:
set.seed(42)
x <- rbinom(n=1000, size=1, p=0.8) # Your first vector
y <- rbinom(n=1000, size=1, p=ifelse(x==1, .95, .05))
cor(x, y)
# [1] 0.8505885
y <- rbinom(n=1000, size=1, p=ifelse(x==1, .94, .06))
cor(x, y)
# [1] 0.821918
y <- rbinom(n=1000, size=1, p=ifelse(x==1, .93, .07))
cor(x, y)
# [1] 0.7679597
在生成第二个向量时,如果第一个向量的值为1,则第二个向量的概率大于0.8 (a为1的概率),如果第一个向量的值为0,则小于0.2 (a为0的概率)。