numpy.random.RandomState.negative_binomial¶
方法
-
RandomState.
negative_binomial
(n, p, size=None)¶ 从负二项分布中提取样本。
样本是从负二项分布中提取的,具有指定的参数, n 成功与 p 成功概率,其中 n 是大于0的整数,并且 p 在间隔时间内 [0, 1] .
参数: - n : int或类似于int的数组
分布的参数,>0。也接受浮动,但它们将被截断为整数。
- p : 浮点数或类似浮点数的数组
分布的参数,>=0且<=1。
- size : int或int的元组,可选
输出形状。如果给定的形状是,例如,
(m, n, k)
然后m * n * k
取样。如果尺寸是None
(默认),如果n
和p
都是标量。否则,np.broadcast(n, p).size
取样。
返回: - out : ndarray或scalar
从参数化负二项分布中提取样本,其中每个样本等于n,即达到n次成功之前发生的失败数。
笔记
负二项分布的概率密度是
p(n;n,p)=binom n+n-1 n p ^ n(1-p)^ n,
在哪里? n 是成功的次数, p 是成功的概率,以及 N+n 是试验次数。负二项分布给出了n次成功后n次失败的概率,最后一次试验成功。
如果一个人反复掷骰子直到第三次出现“1”,那么出现在第三次“1”之前的非“1”数的概率分布是负二项分布。
工具书类
[1] 负二项式分布〉,摘自《数学世界——一个Wolfram网络资源》。http://mathworld.wolfram.com/negative二项分布.html [2] 维基百科,“负二项分布”,https://en.wikipedia.org/wiki/negative_binomial_distribution 实例
从分发中抽取样本:
一个现实世界的例子。一家公司钻探野生猫石油勘探井,每口井的成功概率估计为0.1。每口连续井成功一次的概率是多少,即钻完5口井、钻完6口井等后一次成功的概率是多少?
>>> s = np.random.negative_binomial(1, 0.1, 100000) >>> for i in range(1, 11): ... probability = sum(s<i) / 100000. ... print i, "wells drilled, probability of one success =", probability