Я думаю, проблема в том, что люди видели решение как слишком простое или неправильно заданное. Вы фактически не вычисляете предельные вероятности ... вы их указываете. Затем функция 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. но он довольно сильно варьировался.
Отметьте '? Rmvbin' и посмотрите в примерах. Существует пример использования 'margprob'. – nograpes
yes Я видел пример, моя проблема в том, что я не знаю, какие значения заполнять для моей матрицы. – user1984076
Что случилось с моим вопросом? может кто-нибудь объяснить? – user1984076