2017-08-07 113 views
4

我想模擬固定數量的球m在固定數量的框n在R的分佈。到目前爲止,我一直在使用rpois()泊松近似。對於n箱中的大量球,這是一個很好的近似值。球在模擬框R

但是,rpois()只允許您指示費率lambda,即m/n。結果,正面箱子的數量通常小於球的數量。

會有人知道一個函數或腳本,允許我隨機分配球入箱?

最終我試圖通過引導來計算-log(empty bins/total bins)的置信區間。 這個問題是'打破我的球'可以這麼說。

+1

偉大的建立。沒有看到它。 – DaveRGP

+0

'sample(n,m,replace = TRUE)'? – bouncyball

+3

'rmultinom(x,m,rep(1,n))'? – jeremycg

回答

2

我想你想要多項分佈。

下面是一個簡單的功能 - 我們,採取併購球在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 

你可以再拿到位數/信心間隔:

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

人們,非常感謝您的幫助,這既回答了我的問題,也大大加快了我的引導。 R本身還很新,但一次只能逐步熟悉。準備好後我會提供一些完成的代碼。 – Svencken