Scipyのベータ分布フィッティング


14

ウィキペディアによると、ベータ確率分布には、および 2つの形状パラメーターがあります。αβ

scipy.stats.beta.fit(x)Python を呼び出すと、xの範囲の数字の束があり、4つの値が返されます。これは奇妙に思えます。[01]

グーグルで検索した結果、戻り値の1つは 'location'でなければならないことがわかりましたscipy.stats.beta.fit(x, floc=0)

4番目の変数が何であるか、そして最初の2つがと場合、誰もが知っていますか?αβ


1
ドキュメントは最後の二つの「場所」と「スケール」のパラメータを呼び出します。したがって、4番目はスケールパラメーターです。場所とスケールには、標準的な統計的意味があります。この文脈の1つの解釈はNISTハンドブックで明らかに与えられます。
whuber

私はこれとまったく同じ問題を抱えていますが、何らかの理由で私のベータモデルはすべて「水を保持する」傾向があります。例えば、stats.beta.fit([60,61,62,72])私は得る(0.7313395126217731, 0.7153715263378897, 58.999999999999993, 3.3500998441036982)。私はこれについて何ができるのでしょうか?
TheChymera

:ちょうどbeta.fit()を使用して、いくつかの例が含まれ、一般的な連続確率変数フィット方式、このドキュメントを追加するdocs.scipy.org/doc/scipy/reference/generated/...
mathisfun

回答:


13

の出力に関するドキュメントが明らかに不足しているにもかかわらず、beta.fit次の順序で出力を行います。

α, β, loc (lower limit), scale (upper limit - lower limit)


Is it just spitting out the lower and upper limits based on the range of the data, or doing something else?
shadowtalker

The limits are based on the probability distribution. ie. Normal distribution has no limits, but sample data rarely exceeds ~+/-3. Beta distribution has hard limits, with probability of 0 outside those limits. It is likely that your data won't reach the limits, depending on what you are modeling. In fact, trying to force those limits to match the range of the data can be problematic, as many beta distributions tend to zero probability at the limits. See this post for more on that issue.
jdj081

1
Yes, I'm aware. Those limits are always 0 and 1. Hence: what are the upper and lower limits returned by this function, and how are they at all the same as "location" and "scale"? I guess I just don't understand this answer.
shadowtalker

2
The way the beta distribution is defined, those limits are always 0 and 1. But the generalized beta distribution includes these two scaling factors. The data I model doesn't fall between 0 and 1, so I have to use those numbers. If your data is between 0 and 1, then those outputs should be very close to 0 and 1. If you know your limits are 0 and 1, you can force those with the floc=0 and fscale=1 kwargs. You will still get those outputs, but they will be identical to what you force them to be. And it will likely change your alpha and beta values.
jdj081 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.