假设我想要 2 个具有指定 phi 系数的二进制数据向量,我如何用 R 模拟它?
x
例如,如何创建两个y
具有指定向量长度的向量,cor 效率为 0.79
> x = c(1, 1, 0, 0, 1, 0, 1, 1, 1)
> y = c(1, 1, 0, 0, 0, 0, 1, 1, 1)
> cor(x,y)
[1] 0.7905694
假设我想要 2 个具有指定 phi 系数的二进制数据向量,我如何用 R 模拟它?
x
例如,如何创建两个y
具有指定向量长度的向量,cor 效率为 0.79
> x = c(1, 1, 0, 0, 1, 0, 1, 1, 1)
> y = c(1, 1, 0, 0, 0, 0, 1, 1, 1)
> cor(x,y)
[1] 0.7905694
bindata包非常适合使用这种和更复杂的相关结构生成二进制数据。(这是一份工作论文的链接(警告,pdf),其中列出了包作者所采用方法的理论基础。)
在您的情况下,假设 x 和 y 的独立概率均为 0.5:
library(bindata)
## Construct a binary correlation matrix
rho <- 0.7905694
m <- matrix(c(1,rho,rho,1), ncol=2)
## Simulate 10000 x-y pairs, and check that they have the specified
## correlation structure
x <- rmvbin(1e5, margprob = c(0.5, 0.5), bincorr = m)
cor(x)
# [,1] [,2]
# [1,] 1.0000000 0.7889613
# [2,] 0.7889613 1.0000000