我想在sympy
中有一个自定义离散随机变量。我知道sympy.stats.FiniteRV
,但我相信这需要您定义概率质量函数是什么;我需要一个符号离散的房车。我不知道在sympy.stats
中有什么方法可以定义这个,所以目前我正在做类似
from sympy import Function, Symbol
x = Symbol('x')
p = Function('p_x', nargs=1)
p_x = p(x)
获取我的发行版。但是,我希望这个函数能够意识到它是一个离散的概率分布,也就是说,我希望p(x) >= 0
用于所有x
并且分配到总和一个。 p
定义的集合是符号的,但是能够执行类似
from sympy import symbols, Sum
x0, xm = symbols('x_0 x_m')
total_probability = Sum(p_x, (x, x0, xm)).doit()
assert total_probability == 1
为集合p
定义{x0, ...., xm}
。
有没有一种方法可以将Function
或sympy.stats
中的某些内容创建为我在其支持集中传递的分布,然后它将正确地加到1并且对此非负设置?
奖励积分 - 有没有办法可以处理边缘化问题?即如果我有
pxy = Function('p_{x, y}', nargs=2)
py = Function('p_y', nargs=1)
y, y0, ym = symbols('y y_0 y_m')
# and somehow define the sets for these as x0, ..., xm and y0, ..., yn
Sum(pxy(x, y), (y, y0, ym)).doit() == p_x