R 的 Bins 模拟中的球

Balls in Bins simulation for R

我想在 R 中的固定数量的容器 n 中模拟固定数量的球 m 的分布。到目前为止,我一直在使用泊松近似 rpois()。对于 n 个箱子中的大量球来说,这是一个不错的近似值。

但是,rpois() 只允许您指定速率 lambda,即 m/n。因此,positive bins 的数量通常小于 balls 的数量。

有人知道允许我将球随机分配到箱子中的函数或脚本吗?

最终,我试图通过自举来计算 -log(empty bins/total bins) 的置信区间。 这个问题可以说是'breaking my balls'

我想你想要多项式分布。

这是一个快速函数 - 我们将 m 个球放入 n 个箱子中,并给出 x 个结果,为每个 x 次试验返回一个度量向量:

myfunc <- function(m,n,x){
  out <- rmultinom(x,m,rep(1,n))
  -log(colSums(out == 0)/n)
}

myfunc(10,40,10)
[1] 0.1923719 0.2548922 0.2231436 0.2548922 0.2876821 0.2876821 0.2231436 0.2231436 0.2231436 0.2548922

然后您可以获得 quantiles/Confidence 间隔:

out = myfunc(10,40,1000)
quantile(out, c(0.05,0.95))
       5%       95% 
0.1923719 0.2876821