2014-12-05 54 views
0

我試圖在R中複製超幾何測試(只有pmf參數,等於R中的dhyper函數)。R中的超幾何測試

我在此公式:

choose(K,k)*choose(N-K,n-k)/choose(N,n) 

和當我使用這些號碼我得到:

K=8 
k=20 
N=10000 
n=35 

> choose(K,k)*choose(N-K,n-k)/choose(N,n) 
[1] 0 

其false.The期望的結果是:

dhyper(8,35,10000,20) 

> dhyper(8,35,10000,20) 
[1] 1.128574e-15 

爲什麼我得到錯誤的結果?我甚至試過lchoose,我只得到-Inf。 R能夠做到這一點嗎?

+0

從數值的角度來看,這兩個值幾乎是等價的。 – 2014-12-05 00:17:46

+0

我還補充說''選擇(K,k)'實際上是0,所以你可能會顛倒k和K.你還應該看看'?dhyper'上給出的公式。我認爲這個問題更多的是因爲你無法做到這一點。 – 2014-12-05 00:20:00

回答

0

在dhyper(X,M,N,K)你有:

X不脫離其中包含黑色和白色的球甕替換繪製白色的球的數量。

m甕中的白球數量。

n甕中的黑球數量。

k從甕中抽出的球的數量。

所以,你的公式必須是:

choose(m,k)*choose(N-m,k-x)/choose(N,k) 

其中

N = m + n 

所以:

choose(35,8)*choose(10035-35,20-8)/choose(10035,20) 

必須得到期望的結果。

0

從我的理解你的公式。

K =甕白球的數量 K =,我們要提取

在你的情況下白球數,k> K,所以我們想比我們要提取更多的白球和概率爲0.

dhyper的輸入是不同的。

dhyper(k, K, N - K, n) 

結果如預期的那樣爲0。