2013-04-17 16 views
7

私は、モンカルカル型シミュレーションを使って任意の数の確率分布を集計したいと考えています。私は無作為に何かの連続分布をサンプリングし、他の連続分布の他の無作為サンプルにそれらを加えて、最終的にそれらの組み合わせの確率分布を得ることを望みます。分布自体は経験的であり、関数ではなく、P99 = 2.4、P90 = 7.12、P50 = 24.53、P10 = 82.14などの形である(現実にはこれらの点がたくさんある)。分布は多かれ少なかれlognormalなのでlognormalとして近似するのはおそらく大丈夫でしょう。しかし、どうすればそれをSciPyのlognorm functionに入れることができますか?それともSciPyや一般的なPythonで何か他のやり方をしますか?SciPyのランダムサンプルを描画するためのカスタム確率分布の作成

私は何をしようとしているのかはっきりしていることを願っています。 ありがとう、 アレックス

答えて

2

これは基本的に確率密度のヒストグラムです。あなたが次に行うことができることの1つは、inverse transform samplingをあなたの経験的分布と一緒に使うことです。

別の方法として、特定の機能的な形式のディストリビューション(lognormなど)が必要な場合は、対応する機能フォームでデータをフィッティングすることができます。

+0

まあまあ私はそれらがlognormalに近いと期待しています、あなたは私がそれにデータをフィッティングする方法について知っていますか?私は[記述ページ](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.lognorm.html#scipy)で2つの所与の点を通って対数正規分布を適合させる方法と混同されていました.stats.lognorm)。私がP90をX、P10をYとした場合、どのように対数正規分布を作るのでしょうか? –

+0

あなたが話しているこの2点のことについてはわかりません。私がやることは、まず分布が実際に* log-normalであるかどうかを調べることです。これに対して、正規分布の場合、モーメントは非常に正確な方法で関連づけられるべきです(wikipediaやmathworldなどを参照してください)。また、 'X'がlog-normalなら' log X'は正規分布している: 'log X'のいくつかの最初の瞬間を計算するだけです。 –

+0

いいですが、scipyオブジェクトにロードする必要がないので、上のlognorm関数のページで述べた 'R = lognorm.rvs(s、size = 100)'を使ってサンプルをランダムに取得できますか? –

関連する問題