ожидать#
- rv_histogram.ожидать(функция=None, args=(), loc=0, scale=1, lb=None, ub=None, условный=False, **kwds)[источник]#
Вычислить математическое ожидание функции относительно распределения путем численного интегрирования.
Математическое ожидание функции
f(x)относительно распределенияdistопределяется как:ub E[f(x)] = Integral(f(x) * dist.pdf(x)), lb
где
ubиlbявляются аргументами иxимеетdist.pdf(x)распределения. Если границыlbиubсоответствуют носителю распределения, например.[-inf, inf]в случае по умолчанию, тогда интеграл — это неограниченное математическое ожиданиеf(x). Также функцияf(x)может быть определено так, чтоf(x)является0вне конечного интервала, в этом случае математическое ожидание вычисляется в конечном диапазоне[lb, ub].- Параметры:
- функциявызываемый объект, необязательный
Функция, для которой вычисляется интеграл. Принимает только один аргумент. По умолчанию - тождественное отображение f(x) = x.
- argsкортеж, необязательный
Параметры формы распределения.
- locfloat, опционально
Параметр местоположения (по умолчанию=0).
- scalefloat, опционально
Параметр масштаба (по умолчанию=1).
- lb, ubскаляр, опционально
Нижняя и верхняя границы интегрирования. По умолчанию установлены в область определения распределения.
- условныйbool, необязательно
Если True, интеграл корректируется условной вероятностью интервала интегрирования. Возвращаемое значение — это математическое ожидание функции при условии нахождения в заданном интервале. По умолчанию False.
- Дополнительные ключевые аргументы передаются в процедуру интегрирования.
- Возвращает:
- ожидатьfloat
Вычисленное ожидаемое значение.
Примечания
Поведение интегрирования этой функции унаследовано от
scipy.integrate.quad. Ни эта функция, ниscipy.integrate.quadможет проверить, существует ли интеграл или является конечным. Напримерcauchy(0).mean()возвращаетnp.nanиcauchy(0).expect()возвращает0.0.Аналогично, точность результатов не проверяется функцией.
scipy.integrate.quadобычно надежен для интегралов, которые численно благоприятны, но не гарантируется сходимость к правильному значению для всех возможных интервалов и подынтегральных функций. Эта функция предоставляется для удобства; для критических приложений проверяйте результаты другими методами интегрирования.Функция не векторизована.
Примеры
Чтобы понять влияние границ интегрирования, рассмотрим
>>> from scipy.stats import expon >>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0) 0.6321205588285578
Это близко к
>>> expon(1).cdf(2.0) - expon(1).cdf(0.0) 0.6321205588285577
Если
conditional=True>>> expon(1).expect(lambda x: 1, lb=0.0, ub=2.0, conditional=True) 1.0000000000000002
Небольшое отклонение от 1 связано с численным интегрированием.
Подынтегральная функция может рассматриваться как комплекснозначная функция путем передачи
complex_func=Truetoscipy.integrate.quad.>>> import numpy as np >>> from scipy.stats import vonmises >>> res = vonmises(loc=2, kappa=1).expect(lambda x: np.exp(1j*x), ... complex_func=True) >>> res (-0.18576377217422957+0.40590124735052263j)
>>> np.angle(res) # location of the (circular) distribution 2.0