定义一组随机数

时间:2014-04-03 12:19:56

标签: python sympy

我正在尝试使用sympy.stats模块来帮助计算表达式的期望值。在最简单的形式中,我的问题如下:

我知道如何定义两个正态分布的随机变量并计算期望值

from sympy.stats import Normal, E
import sympy as sp
sigma = sp.symbols('sigma', positive=True)

x1 = Normal("x1", 0, sigma)
x2 = Normal("x2", 0, sigma)
print E(x1 * x2)

Out: 0

但是,我希望能够定义X这是N的向量(或列表) 正态分布随机变量。麻烦的是我需要N保持随意 我无法创建列表或任何内容。

有没有人对如何进行有任何建议?

我需要这样做的原因是我将对X的组件进行求和,其中一些将是相关的,而另一些则不会。

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找类似以下的东西?

mu = MatrixSymbol('mu', n, 1)
Sigma = MatrixSymbol('Sigma', n, n)

X = Normal('X', mu, sigma)  # A multivariate normal distribution

如果是这样,那么你现在运气不好。 SymPy统计数据目前不支持除几个单变量分布的组合之外的任何内容,我们不能一般地处理多变量分布。

如果您愿意使用数字,那么您可能会发现感兴趣的PyMC3。