您如何计算无限分布的期望值? (特别是在python中)

时间:2014-03-16 01:46:20

标签: python numpy scipy

我试图计算分布的预期值(假设我知道参数或我可以估计它们)但它可能是一个无限的样本空间上的分布。是否有一个库(例如在python,numpy或其他东西中)能够以合理的速度和准确度计算出这样的期望值?

对于一个任意分布似乎很难,但我唯一的想法是,如果它是正常的,那么我们可以通过在帽子中添加足够小的块来近似这个概率高度集中的东西......但是我想要做一些不那么特别和更成熟的事情,因为我确信我不是第一个尝试在计算机中计算预期价值的人。

1 个答案:

答案 0 :(得分:2)

拥有无限支持的概率空间并不罕见。

正态分布或t分布对实线有支持,泊松分布超过所有正整数。

scipy.stats中的分布实现了expect方法,在连续的情况下只使用scipy.integrate.quad,并且在离散的情况下使用扩展求和与一些启发式停止准则。

这对于表现良好的函数非常有效,但在某些情况下可能会遇到问题,例如转移支持函数或胖尾巴。

标准法线的方差:

>>> from scipy import stats
>>> stats.norm.expect(lambda x: x**2)
1.000000000000001

Poisson的方差:

>>> stats.poisson.expect(lambda x: (x - 5)**2, args=(5,))
4.9999999999999973