我有一个关于使用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。那么为什么这两者不同呢?