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
我想在 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