我有一组非常大的整数X
和一个概率p
,我想要从X
中按照泊松分布抽取样本s
(一个数字)。例如,如果X=10^8
且p=0.05
,那么我期望s
是我们得到的头的数量。
我可以很容易地使用random.binomial来实现:
s=np.random.binomial(n=X, p=p)
我该怎样使用
random.poisson
函数来实现相同的想法?我有一组非常大的整数X
和一个概率p
,我想要从X
中按照泊松分布抽取样本s
(一个数字)。例如,如果X=10^8
且p=0.05
,那么我期望s
是我们得到的头的数量。
我可以很容易地使用random.binomial来实现:
s=np.random.binomial(n=X, p=p)
random.poisson
函数来实现相同的想法?只需将p
和X
相乘即可:
np.random.poisson(10**8 * 0.05)
得到超过10的8次方的概率在数值上等于零。
@pjs教授强调,我们将概率和数字结合成为泊松过程的参数。
值得一提的是,对于这么大的数字,二项式分布和泊松分布的概率质量函数非常相似,而且(使用概率函数或工程师所称的“cdf”)也接近于高斯分布。
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.random.poisson.html
import numpy as np
s = np.random.poisson(size=n, lam=p)
lam
)并不是概率。 - pjs