Равномерное#
- класс scipy.stats.Равномерное(*, a=None, b=None, **kwargs)[источник]#
Равномерное распределение.
Функция плотности вероятности равномерного распределения:
\[f(x; a, b) = \frac{1} {b - a}\]для \(x \in [a, b]\). Этот класс принимает одну параметризацию:
aдля \(a \in (-\infty, \infty)\),bдля \(b \in (a, \infty)\).- Параметры:
- tolположительное число с плавающей точкой, опционально
Желаемая относительная погрешность вычислений. Если не указана, вычисления могут быть быстрее; при указании вычисления могут с большей вероятностью достичь желаемой точности.
- validation_policy{None, "skip_all"}
Определяет уровень проверки входных данных для выполнения. Если не указано, проверка входных данных выполняется для обеспечения соответствующего поведения в пограничных случаях (например, параметры вне области определения, аргумент вне поддержки распределения и т.д.) и улучшения согласованности выходного dtype, формы и т.д. Передайте
'skip_all'чтобы избежать вычислительных затрат на эти проверки, когда допустимы грубые края.- cache_policy{None, "no_cache"}
Определяет степень кэширования промежуточных результатов. Если оставить неопределённым, промежуточные результаты некоторых вычислений (например, носитель распределения, моменты и т.д.) кэшируются для повышения производительности будущих вычислений. Передайте
'no_cache'для уменьшения памяти, зарезервированной экземпляром класса.
- Атрибуты:
- Все параметры доступны как атрибуты.
Методы
support()Носитель случайной величины
plot([x, y, t, ax])Построить график функции распределения.
sample([shape, method, rng])Случайная выборка из распределения.
moment([order, kind, method])Сырой, центральный или стандартный момент положительного целого порядка.
mean(*[, method])Среднее (сырой первый момент относительно начала координат)
median(*[, method])Медиана (50-й процентиль)
mode(*[, method])Мода (наиболее вероятное значение)
variance(*[, method])Дисперсия (центральный момент второго порядка)
standard_deviation(*[, method])Стандартное отклонение (квадратный корень из второго центрального момента)
skewness(*[, method])Асимметрия (стандартизированный третий момент)
kurtosis(*[, method, convention])Эксцесс (стандартизированный четвертый момент)
pdf(x, /, *[, method])Функция плотности вероятности
logpdf(x, /, *[, method])Логарифм функции плотности вероятности
cdf(x[, y, method])Функция кумулятивного распределения
icdf(p, /, *[, method])Обратная функция распределения.
ccdf(x[, y, method])Дополнительная функция распределения
iccdf(p, /, *[, method])Обратная дополнительная кумулятивная функция распределения.
logcdf(x[, y, method])Логарифм функции кумулятивного распределения
ilogcdf(logp, /, *[, method])Обратная функция логарифма кумулятивной функции распределения.
logccdf(x[, y, method])Логарифм дополнительной кумулятивной функции распределения
ilogccdf(logp, /, *[, method])Обратная функция логарифма дополнительной функции распределения.
entropy(*[, method])Дифференциальная энтропия
logentropy(*[, method])Логарифм дифференциальной энтропии
Смотрите также
Примечания
В документации используются следующие сокращения.
PDF: функция плотности вероятности
CDF: функция распределения
CCDF: дополнительная функция распределения
энтропия: дифференциальная энтропия
log-F: логарифм F (например, log-CDF)
обратный F: обратная функция к F (например, обратная функция распределения)
Документация API написана для описания API, а не для использования в качестве статистической справки. Усилия направлены на то, чтобы быть корректными на уровне, необходимом для использования функциональности, а не на математическую строгость. Например, непрерывность и дифференцируемость могут подразумеваться неявно. Для точных математических определений обратитесь к предпочитаемому математическому тексту.
Примеры
Чтобы использовать класс распределения, его необходимо создать с использованием ключевых параметров, соответствующих одной из принятых параметризаций.
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy import stats >>> from scipy.stats import Uniform >>> X = Uniform(a=0.09, b=188.73)
Для удобства,
plotметод может использоваться для визуализации плотности и других функций распределения.>>> X.plot() >>> plt.show()
Носитель базового распределения доступен с использованием
supportметод.>>> X.support() (np.float64(0.09), np.float64(188.73))
Числовые значения параметров, связанных со всеми параметризациями, доступны как атрибуты.
>>> X.a, X.b, X.ab (np.float64(0.09), np.float64(188.73), np.float64(188.64))
Для вычисления функции плотности вероятности/массы базового распределения в аргументе
x=60.45:>>> x = 60.45 >>> X.pdf(x), X.pmf(x) (np.float64(0.005301102629346905), np.float64(0.0))
Интегральная функция распределения, её дополнение и логарифм этих функций вычисляются аналогично.
>>> np.allclose(np.exp(X.logccdf(x)), 1 - X.cdf(x)) True
Обратные функции относительно аргумента
xтакже доступен.>>> logp = np.log(1 - X.ccdf(x)) >>> np.allclose(X.ilogcdf(logp), x) True
Обратите внимание, что функции распределения и их логарифмы также имеют двухаргументные версии для работы с вероятностной массой между двумя аргументами. Результат обычно более точен, чем наивная реализация, потому что он избегает вычитательной потери точности.
>>> y = 120.82 >>> np.allclose(X.ccdf(x, y), 1 - (X.cdf(y) - X.cdf(x))) True
Существуют методы для вычисления мер центральной тенденции, дисперсии, моментов высшего порядка и энтропии.
>>> X.mean(), X.median(), X.mode() (np.float64(94.41), np.float64(94.41), np.float64(94.41))
>>> X.variance(), X.standard_deviation() (np.float64(2965.4208), np.float64(54.4556773899655))
>>> X.skewness(), X.kurtosis() (np.float64(1.4418186690070737e-15), np.float64(1.7999999999999878))
>>> np.allclose(X.moment(order=6, kind='standardized'), ... X.moment(order=6, kind='central') / X.variance()**3) True
>>> np.allclose(np.exp(X.logentropy()), X.entropy()) True
Псевдослучайные выборки могут быть извлечены из базового распределения с использованием
sample.>>> X.sample(shape=(4,)) array([187.83655479, 127.58484493, 11.83829443, 123.97019017]) # may vary