2014-04-03 81 views
3

我正在嘗試使用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的組件進行求和,其中一些會相互關聯,有些則不會。

回答

2

我認爲你正在尋找類似以下的東西?

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

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

如果是這樣,那麼你目前運氣不好。 SymPy統計數據目前不支持多個單變量分佈的組合,我們不能一般處理多變量分佈。

如果你願意去數字,那麼你可能會發現感興趣的PyMC3。

+0

謝謝,它沒有出現任何替代方案。我想我將不得不等待......或者手動完成。 – Greg

+2

...或貢獻給SymPy :) – MRocklin

+0

好的,這是一個公平的建議。今晚我會研究它 - 如果你有任何關於我應該開始挖掘的提示,我會感激。 – Greg