如何用概率列表有效地计算二项式概率?在R

时间:2014-12-20 05:30:41

标签: r

我列出了独立事件成功的可能性:

probs <- c(.2,.3,.4)

我想编写一个回答这个问题的函数:从这些独立事件获得至少X次成功的概率是多少?

我目前的方法是使用for循环运行以下代码数千次。有更有效的方法吗?

sim_results <- probs - runif(length(probs), 0, 1)
length(sim_results[sim_results > 0])

1 个答案:

答案 0 :(得分:1)

尝试一次性生成所有随机数,避免循环。

# number of random probabilities
p = 100
# number of simulations
N = 1000
# random probabilities
probs = runif(p)
M = matrix(runif(p*N), N, p)
# outcome
y = apply(M,1,function(x) sum(probs>x))
hist(y)