scipy.stats.dpareto_lognorm#
-
scipy.stats.dpareto_lognorm =
object> [источник]# Двойная Парето-логнормальная непрерывная случайная величина.
Как экземпляр
rv_continuousкласс,dpareto_lognormобъект наследует от него коллекцию общих методов (см. ниже полный список), и дополняет их деталями, специфичными для этого конкретного распределения.Методы
rvs(u, s, a, b, loc=0, scale=1, size=1, random_state=None)
Случайные величины.
pdf(x, u, s, a, b, loc=0, scale=1)
Функция плотности вероятности.
logpdf(x, u, s, a, b, loc=0, scale=1)
Логарифм функции плотности вероятности.
cdf(x, u, s, a, b, loc=0, scale=1)
Интегральная функция распределения.
logcdf(x, u, s, a, b, loc=0, scale=1)
Логарифм функции кумулятивного распределения.
sf(x, u, s, a, b, loc=0, scale=1)
Функция выживания (также определяется как
1 - cdf, но sf иногда более точный).logsf(x, u, s, a, b, loc=0, scale=1)
Логарифм функции выживания.
ppf(q, u, s, a, b, loc=0, scale=1)
Процентная точка функции (обратная
cdf— процентили).isf(q, u, s, a, b, loc=0, scale=1)
Обратная функция выживания (обратная к
sf).moment(order, u, s, a, b, loc=0, scale=1)
Нецентральный момент указанного порядка.
stats(u, s, a, b, loc=0, scale=1, moments='mv')
Среднее ('m'), дисперсия ('v'), асимметрия ('s') и/или эксцесс ('k').
entropy(u, s, a, b, loc=0, scale=1)
(Дифференциальная) энтропия случайной величины.
fit(data)
Оценки параметров для общих данных. См. scipy.stats.rv_continuous.fit для подробной документации по ключевым аргументам.
expect(func, args=(u, s, a, b), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)
Ожидаемое значение функции (одного аргумента) относительно распределения.
median(u, s, a, b, loc=0, scale=1)
Медиана распределения.
mean(u, s, a, b, loc=0, scale=1)
Среднее распределения.
var(u, s, a, b, loc=0, scale=1)
Дисперсия распределения.
std(u, s, a, b, loc=0, scale=1)
Стандартное отклонение распределения.
interval(confidence, u, s, a, b, loc=0, scale=1)
Доверительный интервал с равными площадями вокруг медианы.
Примечания
Функция плотности вероятности для
dpareto_lognormравен:\[f(x, \mu, \sigma, \alpha, \beta) = \frac{\alpha \beta}{(\alpha + \beta) x} \phi\left( \frac{\log x - \mu}{\sigma} \right) \left( R(y_1) + R(y_2) \right)\]где \(R(t) = \frac{1 - \Phi(t)}{\phi(t)}\), \(\phi\) и \(\Phi\) являются нормальной функцией плотности вероятности и функцией распределения соответственно, \(y_1 = \alpha \sigma - \frac{\log x - \mu}{\sigma}\), и \(y_2 = \beta \sigma + \frac{\log x - \mu}{\sigma}\) для вещественных чисел \(x\) и \(\mu\), \(\sigma > 0\), \(\alpha > 0\), и \(\beta > 0\) [1].
dpareto_lognormпринимаетuв качестве параметра формы для \(\mu\),sв качестве параметра формы для \(\sigma\),aв качестве параметра формы для \(\alpha\), иbв качестве параметра формы для \(\beta\).Случайная величина \(X\) распределённые согласно приведённой выше PDF могут быть представлены как \(X = U \frac{V_1}{V_2}\) где \(U\), \(V_1\), и \(V_2\) независимы, \(U\) имеет логнормальное распределение, так что \(\log U \sim N(\mu, \sigma^2)\), и \(V_1\) и \(V_2\) следуют распределениям Парето с параметрами \(\alpha\) и \(\beta\), соответственно [2].
Плотность вероятности выше определена в "стандартизированной" форме. Для сдвига и/или масштабирования распределения используйте
locиscaleпараметры. В частности,dpareto_lognorm.pdf(x, u, s, a, b, loc, scale)тождественно эквивалентноdpareto_lognorm.pdf(y, u, s, a, b) / scaleсy = (x - loc) / scale. Обратите внимание, что сдвиг местоположения распределения не делает его "нецентральным" распределением; нецентральные обобщения некоторых распределений доступны в отдельных классах.Ссылки
[1]Хаджарагахт, Голамреза и Уильям Э. Гриффитс. «Распределения Парето-логнормальные: неравенство, бедность и оценка по сгруппированным данным о доходах». Economic Modelling 33 (2013): 593-604.
[2]Reed, William J., and Murray Jorgensen. “The double Pareto-lognormal distribution - a new parametric model for size distributions.” Communications in Statistics - Theory and Methods 33.8 (2004): 1733-1753.
Примеры
>>> import numpy as np >>> from scipy.stats import dpareto_lognorm >>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots(1, 1)
Получить поддержку:
>>> u, s, a, b = 3, 1.2, 1.5, 2 >>> lb, ub = dpareto_lognorm.support(u, s, a, b)
Вычислить первые четыре момента:
>>> mean, var, skew, kurt = dpareto_lognorm.stats(u, s, a, b, moments='mvsk')
Отображение функции плотности вероятности (
pdf):>>> x = np.linspace(dpareto_lognorm.ppf(0.01, u, s, a, b), ... dpareto_lognorm.ppf(0.99, u, s, a, b), 100) >>> ax.plot(x, dpareto_lognorm.pdf(x, u, s, a, b), ... 'r-', lw=5, alpha=0.6, label='dpareto_lognorm pdf')
Альтернативно, объект распределения может быть вызван (как функция) для фиксации параметров формы, местоположения и масштаба. Это возвращает «замороженный» объект RV с заданными фиксированными параметрами.
Зафиксировать распределение и отобразить зафиксированное
pdf:>>> rv = dpareto_lognorm(u, s, a, b) >>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
Проверить точность
cdfиppf:>>> vals = dpareto_lognorm.ppf([0.001, 0.5, 0.999], u, s, a, b) >>> np.allclose([0.001, 0.5, 0.999], dpareto_lognorm.cdf(vals, u, s, a, b)) True
Генерировать случайные числа:
>>> r = dpareto_lognorm.rvs(u, s, a, b, size=1000)
И сравните гистограмму:
>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2) >>> ax.set_xlim([x[0], x[-1]]) >>> ax.legend(loc='best', frameon=False) >>> plt.show()