numpy.random.Generator.logseries
метод
- random.Generator.logseries(p, size=None)
-
Генерирует выборки из логарифмического распределения.
Выборка производится из логарифмического распределения со значением параметра формы, 0 <=
p< 1.- Параметры:
-
- pfloat или array_like из float
-
Параметр формы распределения. Должен быть в диапазоне [0, 1).
- sizeint или кортеж из int, необязательно
-
Форма выходных данных. Если заданная форма, например,
(m, n, k), тогдаm * n * kвыборок генерируются. Если size —None(по умолчанию), то возвращается единственное значение, еслиp— скаляр. В противном случае генерируютсяnp.array(p).sizeвыборок.
- Возвращает:
-
- outndarray или скаляр
-
Сгенерированные выборки из логарифмического распределения с заданными параметрами.
См. также
scipy.stats.logser-
функция плотности вероятности, распределение или функция кумулятивного распределения и т.д.
Примечания
Функция вероятности для логарифмического распределения:
\[P(k) = \frac{-p^k}{k \ln(1-p)},\]где p = вероятность.
Логарифмическое распределение часто используется для представления богатства видов и их встречаемости, впервые предложенное Фишером, Корбетом и Уильямсом в 1943 году [2]. Оно также может использоваться для моделирования числа пассажиров в автомобилях [3].
Ссылки
[1]Бузас, Мартин А.; Калвер, Стивен Дж., Понимание регионального разнообразия видов с помощью логарифмического распределения встречаемости: BIODIVERSITY RESEARCH Разнообразие & Распределения, том 5, номер 5, сентябрь 1999 г., с. 187-195(9).
[2]Фишер, Р.А., А.С. Корбет и К.Б. Уильямс. 1943. Отношение между числом видов и числом особей в случайной выборке популяции животных. Журнал зоологии животных, 12:42-58.
[3]Д. Дж. Хэнд, Ф. Дэли, Д. Лунн, Е. Остроуский, Справочник по небольшим наборам данных, 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()
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/random/generated/numpy.random.Generator.logseries.html