私は拡散過程を定義するランダムプロセスの(条件付き)期待のように、確率的な計算をすることができるPythonライブラリを探しています。私はsimpy(simpy.sourceforge.net)で一見しましたが、私の必要性をカバーしていないようです。Pythonでの確率的計算ライブラリ
これはクイックプロトタイピングと実験用です。 Javaでは、私はいくつかの成功(現在は非アクティブ)のhttp://martingale.berlios.de/Martingale.htmlライブラリを使用していました。
問題自体は難しいことではありませんが、一般的ではありません(効率的なメモリ使用、可変削減技術など)。
理想的には、私は(あくまで一例)このような何かを書くことができるようになります
def my_diffusion(t, dt, past_values, world, **kwargs): W1, W2 = world.correlated_brownians_pair(correlation=kwargs['rho']) X = past_values[-1] sigma_1 = kwargs['sigma1'] sigma_2 = kwargs['sigma2'] dX = kwargs['mu'] * X * dt + sigma_1 * W1 * X * math.sqrt(dt) + sigma_2 * W2 * X * X * math.sqrt(dt) return X + dX X = RandomProcess(diffusion=my_diffusion, x0 = 1.0) print X.expectancy(T=252, dt = 1./252., N_simul= 50000, world=World(random_generator='sobol'), sigma1 = 0.3, sigma2 = 0.01, rho=-0.1)
誰かが例えばnumpyの中でそれを再実装以外の何かを知っているでしょうか?
注意を使用することができます。これは非常に興味深い材料であるが、残念ながらパス/時間依存のプロセスを含むようには見えません: ます。http:// pymc .googlecode.com/svn/doc/index.html) – LeMiz
擬似乱数を使用すると、生きもののためのこのようなことを行うことができます。 Sobol配列)。 –
私はまた、生きている(そしてパリでも)そうします!根拠をシミュレートするときに同じ図面を再利用できることは、見積もりの分散を減らすだけでなく、非常に便利です。また、ソルブ配列にも欠点があります。もちろん、問題は生産コードではなく実験に関するものでした。 – LeMiz