【发布时间】:2017-10-24 17:23:32
【问题描述】:
我有一个由 0 和 1 组成的 $N$x$N$ 矩阵 $G$。我想仅从伯努利分布中重新采样 $G$ 中的那些,其中概率 $p$ 沿原始值变化。这个想法是用来自独立伯努利变量的实现替换 $G$ 中的所有变量。我在 R 中试过这个:
for(i in 1:N){
for(j in 1:N){
G[i,j] <- ifelse(G[i,j] == 1,rbinom(1,1,p[i]),0)}}
但是,对于计算时间,最好避免使用 for 循环。有谁知道如何以矩阵形式写这个?非常感谢你!
【问题讨论】:
-
我不关注——如果你重新采样“只有那些”,那么你为什么不应该只得到一组呢?你能澄清一下你想要做什么吗?在什么意义上,这段代码还不是“矩阵形式”?您是否想说 (1) 您想用来自独立伯努利变量的实现替换 $G$ 中的所有 1 以及 (2) 您想避免使用 for 循环?
-
@whuber 抱歉这个模糊的问题。是的(1)和(2)。我已经编辑了帖子。