我认为问题在于人们认为解决方案过于简单或没有正确指定。您实际上并没有计算边际概率......您指定它们。然后该rmvbin
函数使用边际概率的规范和联合相关性来进行所需的采样,以(平均)给出与这些规范相匹配的联合分布。
library(bindata)
rmvbin<-rmvbin(100, margprob=rep(.5,50), bincorr=cor.mat)
> str(rmvbin)
num [1:100, 1:50] 0 0 0 1 0 0 0 1 0 0 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : NULL
因此,要查看此结果的采样特征,您可以看到与第一列有什么相关性:
Hmisc::describe(apply(rmvbin[,-1], 2, function(col) cor(col, rmvbin[,1]) ) )
apply(rmvbin[, -1], 2, function(col) cor(col, rmvbin[, 1]))
n missing unique Mean .05 .10 .25 .50 .75 .90
49 0 38 0.2009 0.05886 0.09874 0.13309 0.19372 0.25208 0.29723
.95
0.33772
lowest : 0.03508 0.04013 0.08696 0.09874 0.10889
highest: 0.29942 0.32450 0.34653 0.40902 0.46714
因此,采样下的平均相关性非常接近标称值 0.2。但它确实差异很大。