scipy.stats的期望和意义有什么不同?

时间:2018-01-28 09:59:47

标签: python scipy statistics

根据预期值的定义,它也指均值。 但是在scipy.stats.binom中,它们会得到不同的值。像这样,

import scipy.stats as st

st.binom.mean(10, 0.3) ----> 3.0

st.binom.expect(args=(10, 0.3)) ---->3.0000000000000013

所以这让我感到困惑!为什么呢?

2 个答案:

答案 0 :(得分:1)

在示例中,差异在于浮点计算,如指出的那样。通常,根据集成容差,可能还会出现截断。

mean和其他一些时刻对于许多分布都有一个解析解,在这种情况下我们通常会得到一个精确的估计。

expect是一个通用函数,通过在连续情况下的离散情况和数值积分中的求和来计算任意(*)函数的期望。这会累积浮点噪声,但也取决于数值积分的收敛标准,并且通常不如分析计算时刻精确。

(*)某些“不好”的函数在集成中可能存在数值问题,例如scipy.integrate.quad中的默认设置可能会发生这种问题

答案 1 :(得分:0)

这可能只是计算平均值时数值不精确的结果。在数学上,它们应该是相同的,但是当使用有限精度算法实现时,有不同的计算均值的方法具有不同的属性。例如,将数字相加并除以总数并不是特别可靠,尤其是当数字在真实(理论)平均值附近波动很小时,或者具有相反的符号时。递归estimates可能有更好的属性。