numpy.random.Generator.logseries#

метод

random.Generator.logseries(p, размер=None)#

Извлечь выборки из логарифмического серийного распределения.

Выборки берутся из лог-серийного распределения с заданным параметром формы, 0 <= p < 1.

Параметры:
pfloat или array_like из float

Параметр формы для распределения. Должен быть в диапазоне [0, 1).

размерint или кортеж ints, опционально

Форма вывода. Если заданная форма, например, (m, n, k), затем m * n * k образцы извлекаются. Если size равен None (по умолчанию), возвращается единственное значение, если p является скаляром. В противном случае, np.array(p).size выбираются образцы.

Возвращает:
выходndarray или скаляр

Выборки, извлеченные из параметризованного логарифмического серийного распределения.

Смотрите также

scipy.stats.logser

функция плотности вероятности, распределение или интегральная функция распределения и т.д.

Примечания

Функция вероятности для распределения лог-ряда

\[P(k) = \frac{-p^k}{k \ln(1-p)},\]

где p = вероятность.

Лог-серийное распределение часто используется для представления видового богатства и встречаемости, впервые предложено Фишером, Корбетом и Уильямсом в 1943 году [2]. Также может использоваться для моделирования количества пассажиров, наблюдаемых в автомобилях [3].

Ссылки

[1]

Buzas, Martin A.; Culver, Stephen J., Understanding regional species diversity through the log series distribution of occurrences: BIODIVERSITY RESEARCH Diversity & Distributions, Volume 5, Number 5, September 1999, pp. 187-195(9).

[2]

Fisher, R.A., A.S. Corbet и C.B. Williams. 1943. Связь между количеством видов и количеством особей в случайной выборке из популяции животных. Journal of Animal Ecology, 12:42-58.

[3]

D. J. Hand, F. Daly, D. Lunn, E. Ostrowski, A Handbook of Small Data Sets, CRC Press, 1994.

[4]

Википедия, «Логарифмическое распределение», https://en.wikipedia.org/wiki/Logarithmic_distribution

Примеры

Извлечь выборки из распределения:

>>> a = .6
>>> rng = np.random.default_rng()
>>> s = rng.logseries(a, 10000)
>>> import matplotlib.pyplot as plt
>>> bins = np.arange(-.5, max(s) + .5 )
>>> count, bins, _ = plt.hist(s, bins=bins, label='Sample count')

Построить график относительно распределения:

>>> def logseries(k, p):
...     return -p**k/(k*np.log(1-p))
>>> centres = np.arange(1, max(s) + 1)
>>> plt.plot(centres, logseries(centres, a) * s.size, 'r', label='logseries PMF')
>>> plt.legend()
>>> plt.show()
../../../_images/numpy-random-Generator-logseries-1.png