scipy.stats.rv_histogram.expect¶
- rv_histogram.expect(func=None, args=(), loc=0, scale=1, lb=None, ub=None, conditional=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]
。- 参数
- func可调用,可选
要计算积分的函数。只需要一个参数。默认值为身份映射f(X)=x。
- args元组,可选
分布的形状参数。
- loc浮动,可选
位置参数(默认值=0)。
- scale浮动,可选
比例参数(默认值=1)。
- Lb、Ub标量,可选
积分的上下限。默认值设置为支持分发。
- conditional布尔值,可选
如果为True,则积分将通过积分间隔的条件概率进行修正。返回值是函数的期望值,条件是处于给定的间隔内。默认值为False。
- 其他关键字参数被传递给集成例程。
- 退货
- expect浮动
计算出的期望值。
注意事项
此函数的集成行为继承自
scipy.integrate.quad
。无论是此函数还是scipy.integrate.quad
可以验证积分是否存在或有限。例如cauchy(0).mean()
退货np.nan
和cauchy(0).expect()
退货0.0
。该函数未矢量化。
示例
要了解积分界限的影响,请考虑
>>> 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的轻微偏差是由于数值积分造成的。