我有一个随机变量Y,其分布为Binomial(n,0.5)
,其中试验次数n
本身就是一个随机变量n~Poisson(10)
。
如何使用SymPy自动计算X和Y之间的协方差? 代码
from sympy import Symbol
from sympy.stats import Poisson, E, Binomial
z1 = Symbol("z1")
x1 = Poisson("x1", 10)
x2 = Binomial("x2", z1, 0.5)
Ex2 = E(E(x2).subs(z1, x1))
Vx2 = E(E((x2-Ex2)**2).subs(z1, x1))
cov = E(E((z1-E(x1))*(x2-Ex2)).subs(z1, x1))
print(cov)
引发错误
TypeError: can't convert symbols to int
,由于二项式构造函数的试验参数限制为整数,而不是符号z1
。
在python中建议替换SymPy也很有帮助。
这是this older post的变体。