使用Python进行超几何分布的差异

时间:2017-11-28 16:32:42

标签: python scipy

我有一个关于使用Python进行超几何分布计算的问题。假设我有一个15个球包,其中5个是蓝色,10个是红色。如果我随机挑出5个球,那么我从5个中挑选出4个蓝色的几率是多少?如果我在Python中使用模拟这里是代码:

 import numpy as np
 balls=['blue']*5+['red']*10
 count=0
 for i in range(10000):
     pick=np.random.choice(balls, 5)
     if list(pick).count('blue')==4:
         count+=1
 odds=count/10000
 print(odds)

我大约0.04。但如果我使用scipy.stats,我会得到一个不同的数字。代码非常简单。

from scipy import stats
odds=stats.hypergeom.pmf(4, 15, 5, 5)
print(odds)

我得到0.016。那么为什么这两者不同呢?

0 个答案:

没有答案