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()