在sympy stats模块中期望方法的意外行为

时间:2014-02-19 17:51:03

标签: python statistics sympy integral

我试图使用Sympy 0.7.4.1来评估正常随机变量函数的期望

a, mu = symbols('x mu', real=True)
sigma = symbols('sigma', positive=True)
X = Normal("X", mu, sigma)
expr1 = (sigma**2 - (X-mu)**2)
print E(expr1)

由于我从自身中减去差异,因此预期为0。现在我将expr乘以常量1/a

expr2 = (sigma**2 - (X-mu)**2)/a
print E(expr2)

同样,这给出了预期的0。

但是,如果我将expr乘以因子1/(a-1)

expr3 = (sigma**2 - (X-mu)**2)/(a-1)
print E(expr3)

Sympy返回未评估的积分而不是0.

Integral(sqrt(2)*(sigma**2 - (X - mu)**2)*exp(-(X -
         mu)**2/(2*sigma**2))/(2*sqrt(pi)*sigma*(x - 1)), (X, -oo, oo))

由于a是一个任意常数,为什么expr2expr3的期望不同?

签入Mathematica,相当于

Expectation[(\[Sigma]^2 - (\[Mu] - X)^2)/(a - 1), 
             X \[Distributed] NormalDistribution[\[Mu], \[Sigma]]]

按预期给出0。

1 个答案:

答案 0 :(得分:0)

我认为这是一个错误。你能在https://github.com/sympy/sympy/issues/new报告吗?