R中的超几何测试

时间:2014-12-05 00:07:58

标签: r

我试图在R中复制超几何测试(只有pmf参数,等于R中的dhyper函数。)

我做了这个公式:

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

这是假的。期望的结果是:

dhyper(8,35,10000,20)

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

为什么我得到错误的结果?我甚至尝试使用lchoose,我只得-Inf。 R能够做到吗?

2 个答案:

答案 0 :(得分:0)

从我对你的公式的理解。

K =瓮中的白球数量 k =我们想要提取的白球数量

在您的情况下,k> K,所以我们想要提取比我们更多的白球,概率为0。

dhyper的输入是不同的。

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

结果是0,正如预期的那样。

答案 1 :(得分:0)

在dhyper(x,m,n,k)中你有:

x从未包含黑色和白色球的骨灰盒中取出的白球数量。

是瓮中白球的数量。

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)

必须提供所需的结果。