Beta-Distribution passend für Scipy

14

Laut Wikipedia hat die Beta-Wahrscheinlichkeitsverteilung zwei Formparameter: und .αβ

Wenn ich scipy.stats.beta.fit(x)in Python anrufe, wo xsich eine Reihe von Zahlen im Bereich , werden 4 Werte zurückgegeben. Das kommt mir komisch vor.[0,1]

Nach dem googeln habe ich festgestellt, dass einer der Rückgabewerte 'location' sein muss, da die dritte Variable 0 ist, wenn ich aufrufe scipy.stats.beta.fit(x, floc=0).

Weiß jemand, was die vierte Variable ist und ob die ersten beiden und ?αβ

Peter Smit
quelle
1
In der Dokumentation werden die letzten beiden Parameter "location" und "scale" aufgerufen. Somit ist der vierte der Skalenparameter. Ort und Maßstab haben statistische Standardbedeutungen. Eine Interpretation in diesem Zusammenhang findet sich explizit im NIST-Handbuch .
Whuber
Ich habe genau das gleiche Problem, aber aus irgendeinem Grund neigen alle meine Betamodelle dazu, "Wasser zu halten". Zum Beispiel, weil stats.beta.fit([60,61,62,72])ich bekomme (0.7313395126217731, 0.7153715263378897, 58.999999999999993, 3.3500998441036982). Irgendeine Idee, was ich dagegen tun kann?
TheChymera
Fügen Sie einfach diese Dokumentation für die generische kontinuierliche Zufallsvariablen-Anpassungsmethode hinzu, die einige Beispiele mit beta.fit () enthält: docs.scipy.org/doc/scipy/reference/generated/…
mathisfun

Antworten:

13

Trotz eines offensichtlichen Mangels an Dokumentation zur Ausgabe von beta.fitwird die Ausgabe in der folgenden Reihenfolge ausgeführt:

, β , loc (Untergrenze), Skala (Obergrenze - Untergrenze)αβ

jdj081
quelle
Spuckt es nur die unteren und oberen Grenzen aus, basierend auf dem Bereich der Daten, oder macht es etwas anderes?
Shadowtalker
Die Grenzen basieren auf der Wahrscheinlichkeitsverteilung. dh Die Normalverteilung kennt keine Grenzen, aber die Probendaten überschreiten selten ~ +/-3. Die Betaverteilung hat harte Grenzen, mit einer Wahrscheinlichkeit von 0 außerhalb dieser Grenzen. Es ist wahrscheinlich, dass Ihre Daten nicht an die Grenzen stoßen, je nachdem, was Sie modellieren. Tatsächlich kann es problematisch sein, diese Grenzwerte zu erzwingen, damit sie mit dem Datenbereich übereinstimmen, da viele Betaverteilungen an den Grenzwerten mit einer Wahrscheinlichkeit von null auftreten. In diesem Beitrag erfahren Sie mehr zu diesem Thema.
jdj081
1
Ja, ich bin mir bewusst. Diese Grenzen sind immer 0 und 1. Also: Was sind die oberen und unteren Grenzen, die von dieser Funktion zurückgegeben werden, und wie sind sie überhaupt mit "Ort" und "Maßstab" identisch? Ich glaube, ich verstehe diese Antwort einfach nicht.
Shadowtalker
2
Wie die Beta-Verteilung definiert ist, sind diese Grenzen immer 0 und 1. Die verallgemeinerte Beta-Verteilung enthält jedoch diese beiden Skalierungsfaktoren. Die Daten, die ich modelliere, liegen nicht zwischen 0 und 1, daher muss ich diese Zahlen verwenden. Wenn Ihre Daten zwischen 0 und 1 liegen, sollten diese Ausgaben sehr nahe an 0 und 1 liegen. Wenn Sie wissen, dass Ihre Grenzwerte 0 und 1 sind, können Sie diese mit floc=0und fscale=1kwargs erzwingen. Sie werden diese Ausgaben immer noch erhalten, aber sie sind identisch mit dem, wozu Sie sie zwingen. Und es wird wahrscheinlich Ihre Alpha-und Beta-Werte ändern.
jdj081