2009-10-18 17 views
15

私は拡散過程を定義するランダムプロセスの(条件付き)期待のように、確率的な計算をすることができる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の中でそれを再実装以外の何かを知っているでしょうか?

+0

注意を使用することができます。これは非常に興味深い材料であるが、残念ながらパス/時間依存のプロセスを含むようには見えません: ます。http:// pymc .googlecode.com/svn/doc/index.html) – LeMiz

+0

擬似乱数を使用すると、生きもののためのこのようなことを行うことができます。 Sobol配列)。 –

+0

私はまた、生きている(そしてパリでも)そうします!根拠をシミュレートするときに同じ図面を再利用できることは、見積もりの​​分散を減らすだけでなく、非常に便利です。また、ソルブ配列にも欠点があります。もちろん、問題は生産コードではなく実験に関するものでした。 – LeMiz

答えて

0

確率的なODE/PDE問題を解決するためにSundialsを使用する人は知っていますが、私はあなたのケースで適切であることを確かめるためにライブラリについて十分に知りません。そのためのPythonバインディングはhereです。

+0

これはMCツールではなくPDEソルバーです。私はすべての問題を低次元のPDEに変換することができたらいいと思っています...今は、いくつかのモデルのルックアンドフィールを調べたいだけです(軌跡がどのように見えるか) – LeMiz

1

あなたはsageを見ましたか?

+0

確率的シミュレーションは見つかりませんでしたセージのパッケージ。 – LeMiz

1

Pythonでこれまでに見たことのあるところは、PyMC - さまざまなマルコフ連鎖モンテカルロアルゴリズムの実装です。

0

私は確率過程(拡散プロセスといくつかの調整を含む)のpythonライブラリに取り組んでいます。 google-projectホームページにthis linkをチェックしてください。乾杯!

+0

これは私が思うようにコメントするのに適しています。 – arshajii