2017-07-10 7 views
0

私はscipy.stats.distributionsオブジェクトを持っています。私はその下限と上限を把握しようとしています。私は何をしようとしている説明する簡体字コード:scipy.stats.distributionsオブジェクトの下限と上限をどのように取得しますか?

from scipy.stats.distributions import uniform 
u = uniform(1, 5) 
print u.dist.name    #prints 'uniform' 
print u.dist.lower_bound  #I'm trying to print '1' 
#AttributeError: 'uniform_gen' object has no attribute 'lower_bound' 

私はどこでもこれを行う方法についてのドキュメントを見つけることができませんでした。

答えて

1

私たちの最大の便宜のために、すべてのscipyディストリビューションがパラメータ設定されているかどうかはわかりません。しかし、ドキュメントでは、「この分布はlocとloc + scaleの間で一定です。あなたは区間[1,5]上でユニフォームが必要です。これは、loc = 1とloc + scale = 5を意味します。次に、以下のコードを使って、あなたが最も直接的に求めてきたものを得ることができます。

通常のように、無限のサポートを含むディストリビューションがどこに関係するかはより不確実になります。たとえばppf(0)やppf(1)を求めることができますが、結果(マイナスプラス無限大はあまり面白くない)です。私は大部分が密度関数の「興味深い」部分を捕らえている下限と上限にもっと興味があると思う。通常の場合、これはppf(0.05)からppf(0.95)までである可能性があります。この場合、ドキュメントには、 'location(loc)キーワードは平均を指定します。 scale(scale)キーワードは標準偏差を指定します。 'それは安堵です。

>>> from scipy.stats.distributions import norm 
>>> n = norm(0,1) 
>>> n.ppf(0.05) 
-1.6448536269514729 
>>> n.ppf(0.95) 
1.6448536269514722 

驚きはありません。

1

私の知る限り、確率密度関数には、x方向またはy方向の上下限はありません。定義上、あなたの一様分布は、pdfが(1、5)の範囲で1/4と評価され、それ以外の場合は0と評価されます。 cdfが0または1である(または漸近的に0または1に近い)点を求めている場合は、scipy.statsのすべての分布関数にはppfメソッドがあり、これを入れることで上下限を得ることができます希望のパーセンタイル(あなたの場合は0と1)。

ただし、一般的に連続ランダム変数は、0または1をppfに入力すると、その境界の一方または両方として+無限大を与えます。それは単に配布がどのように構築されるかです。値を見つけようとしているのであれば、実際には0または1に近い数字を試してみてください。

+0

私は試しました: 'print u.ppf(0)' ありがとう – Eddy

関連する問題