例如我有一个关于可能性的向量
第一个月
我想每次以c(1-myprob, myprob)
的概率对一系列1到0之间的数字进行采样,
这意味着在序列中的第一个数字中,函数样本1和0乘以(0.42,0.58),第二个乘以(0.49,0.50)等等,
我怎样才能通过样本生成5个数字?
的语法Y <- sample(c(1,0), 1, replace=F, prob=c(1-myprob, prob))
将有不正确的概率数和只有1个数字输出,如果我指定的prob;
而的语法Y <- sample(c(1,0), 5, replace=F, prob=c(1-myprob, prob))
我会把概率集中在0. 62(或者不是我不确定,但结果似乎根本不正确)
感谢您提前回复!
2条答案
按热度按时间afdcj2ne1#
如果
myprob
是每次迭代绘制1的概率,那么您可以使用rbinom
、n = 5
和size = 1
(1-0绘制的5次迭代)。6vl6ewon2#
Maël已经提出了一个从二项分布抽样的很好的解决方案。可能还有更多的替代方案,我只想推荐其中的两个:
运行()
这将首先生成一系列0和1之间的5个均匀分布的随机数,然后将该向量与
myprob
进行比较,并将逻辑值TRUE
/FALSE
转换为1/0。vapply(示例())
这可能就是你一开始就在寻找的东西,它通过将
myprob
的值作为p
迭代来执行sample()
命令,并将5次绘制作为一个向量返回。