scipy.stats.rv_histogram.

ожидать#

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=True to scipy.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