上一个主题

numpy.random.lognormal

下一个主题

numpy.random.multinomial

numpy.random.logseries

numpy.random.logseries(p, size=None)

从对数序列分布中提取样本。

从具有指定形状参数0的对数序列分布中提取样本< p < 1。

参数:
p : 浮点数或类似浮点数的数组

分布的形状参数。必须在范围(0,1)内。

size : int或int的元组,可选

输出形状。如果给定的形状是,例如, (m, n, k) 然后 m * n * k 取样。如果尺寸是 None (默认),如果 p 是标量。否则, np.array(p).size 取样。

返回:
out : ndarray或scalar

从参数化对数序列分布中提取样本。

参见

scipy.stats.logser
概率密度函数、分布或累积密度函数等。

笔记

对数序列分布的概率密度为

p(k)=frac-p^k kln(1-p),

其中p=概率。

对数序列分布常被用来表示物种丰富度和发生率,这是Fisher、Corbet和Williams于1943年首次提出的。 [2] . 它也可以用来模拟在汽车中看到的乘客数量。 [3] .

工具书类

[1]Buzas,Martin A.;Culver,Stephen J.,通过出现的对数序列分布了解区域物种多样性:生物多样性研究多样性和分布,第5卷,第5号,1999年9月,第187-195(9)页。
[2]Fisher,R.A.、A.S.Corbet和C.B.Williams。1943。动物种群随机抽样中物种数量与个体数量之间的关系。动物生态学杂志,12:42-58。
[3]D.J.Hand,F.Daly,D.Lunn,E.Ostrowski,《小数据集手册》,CRC出版社,1994年。
[4]维基百科,“对数分布”,https://en.wikipedia.org/wiki/logaritic_distribution

实例

从分发中抽取样本:

>>> a = .6
>>> s = np.random.logseries(a, 10000)
>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s)

#按分布绘制

>>> def logseries(k, p):
...     return -p**k/(k*log(1-p))
>>> plt.plot(bins, logseries(bins, a)*count.max()/
             logseries(bins, a).max(), 'r')
>>> plt.show()