scipy.stats.rv_continuous.expect

rv_continuous.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

哪里 ublb 是参数和 x 有没有 dist.pdf(x) 分配。如果这些界限 lbub 对应于分布的支持,例如 [-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.nancauchy(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的轻微偏差是由于数值积分造成的。