2016-03-22 4 views
3

私は、未知分布の確率密度関数をタプル(x、f(x))の集合として与えています。ここで、x=numpy.arange(0,1,size)とf(x)は対応する確率です。pythonでPDFからの分布を特定する

対応するディストリビューションを特定する最も良い方法は何ですか?これまでの私の考えは、pdfに基づいて大量のサンプルを描画し(コードを自分で作成して)、得られたデータを使ってscipy.statsに実装されているすべてのディストリビューションに適合させてから最適なものにすることです。

この問題を解決するには、より良い方法がありますか?たとえば、scipy.statsには、この問題を解決するのに役立つ何らかのユーティリティがありますか?

+0

[こちら](http://stats.stackexchange.com/questions/10517/identify-probability-distributions)を参照してください。一般に、これは実際には解決できません。 –

+0

リンクをありがとう。私は受け入れる答えがなくてもどのように質問を終えることができるのか分かりませんが、答えとして再投稿してもよろしいですか? – Darina

答えて

3

基本的な意味では、経験的サンプルに基づいて分布を要約することは実際には不可能です。hereを参照してください。

幾分任意の基準に基づいて、(パラメトリック)分布の有限集合の1つから出てくるという仮説を拒否/受け入れることは、より制限された何かを行うことが可能です。ディストリビューションの有限集合を考えると

は、各ディストリビューションのために、あなたはおそらく現実的に次のようんでした:

  1. データへ分布のパラメータを合わせます。たとえば、scipy.stats.beta.fitは、ベータ版の配信に最適なパラメータに適合します(すべてscipyの配信にこの方法があります)。

  2. データがこの配布によって生成されたという仮説を拒否/受け入れます。これを行う方法は1つ以上あります。特に簡単な方法は、別のサンプルを生成するために分布のrvs()メソッドを使用してから、ks_2sampを使用してKolmogorov-Smirnovテストを生成することです。いくつかの特定の分布は分布の家族のメンバーは、データを生成するかどうかをテストのためのより良い、アドホックなアルゴリズムを持っている可能性があることを

は注意してください。いつものように、正規分布は特に多くを持っています(Normalcy test参照)。

関連する問題