Gibt es eine Möglichkeit, mithilfe eines etablierten Python-Pakets (z. B. SciPy) meine eigene Wahrscheinlichkeitsdichtefunktion zu definieren (ohne vorherige Daten, nur ), damit ich dann Berechnungen damit durchführen kann (z. B. die Varianz der stetigen Zufallsvariablen erhalten)? Natürlich könnte ich zum Beispiel SymPy oder Sage nehmen, eine symbolische Funktion erstellen und die Operationen ausführen, aber ich frage mich, ob ich statt all dieser Arbeit ein bereits implementiertes Paket verwenden kann.
python
statistics
probability
Astrojuanlu
quelle
quelle
Antworten:
Sie haben die Unterklasse rv_continuous Klasse in scipy.stats
jetzt ist my_cv eine kontinuierliche Zufallsvariable mit dem angegebenen PDF und Bereich [0,1]
Beachten Sie, dass in diesem Beispiel
my_pdf
undmy_cv
sind beliebige Namen (das alles gewesen sein könnte), aber_pdf
ist nicht willkürlich; es und_cdf
sind Methoden inst.rv_continuous
von denen eine überschrieben werden muss, damit die Unterklasse funktioniert.quelle
3*x**2
hier), oder die resultierende Zufallsvariable liefert falsche Ergebnisse (Sie könnenmy_cv.median()
zum Beispiel überprüfen ). Ich habe den Code korrigiert.x
[0, 1] liegen muss. könntest Du das erläutern?my_cv.rvs()
(was einsize
Argument sein kann, um mehrere Proben auf einmal zu erhalten). Dies ist, was ich aus der Dokumentation ( docs.scipy.org/doc/scipy/reference/generated/… ) schätze .Sie sollten sympy.stats auschecken. Es bietet eine Schnittstelle zum Umgang mit Zufallsvariablen. Das folgende Beispiel enthält eine Zufallsvariable,
X
die für das Einheitsintervall mit Dichte definiert ist2x
Wenn Sie interessiert sind, kann diese Abstraktion einige ziemlich komplexe Manipulationen verarbeiten.
quelle