Gibt es bei einem Mittelwert und einer Varianz einen einfachen Funktionsaufruf, der eine Normalverteilung darstellt?
python
matplotlib
user1220022
quelle
quelle
%matplotlib inline
um die Handlung zu zeigenscipy.stats.norm.pdf(x, mu, sigma)
anstelle vonmlab.normpdf(x, mu, sigma)
math
wenn Sie bereits importiert habennumpy
und verwenden konntennp.sqrt
?math
für skalare Operationen, da sie beispielsweisemath.sqrt
über eine Größenordnung schneller ist alsnp.sqrt
bei der Arbeit mit Skalaren.Ich glaube nicht, dass es eine Funktion gibt, die all das in einem einzigen Aufruf erledigt. Sie finden jedoch die Gaußsche Wahrscheinlichkeitsdichtefunktion in
scipy.stats
.Der einfachste Weg, den ich finden könnte, ist:
Quellen:
quelle
norm.pdf
zunorm(0, 1).pdf
. Dies erleichtert die Anpassung an andere Fälle / das Verständnis, dass dadurch ein Objekt erzeugt wird, das eine Zufallsvariable darstellt.Verwenden Sie stattdessen Seaborn, ich verwende Distplot von Seaborn mit Mittelwert = 5 Standard = 3 von 1000 Werten
Sie erhalten eine Normalverteilungskurve
quelle
Unutbu Antwort ist richtig. Aber weil unser Mittelwert mehr oder weniger als Null sein kann, möchte ich dies dennoch ändern:
dazu:
quelle
Wenn Sie einen schrittweisen Ansatz bevorzugen, können Sie eine Lösung wie die folgende in Betracht ziehen
quelle
Ich bin gerade darauf zurückgekommen und musste scipy installieren, da matplotlib.mlab mir die Fehlermeldung gab, als ich das
MatplotlibDeprecationWarning: scipy.stats.norm.pdf
obige Beispiel versuchte. Das Beispiel lautet also jetzt:quelle
Ich glaube, das ist wichtig, um die Höhe einzustellen, also habe ich diese Funktion erstellt:
Wo
sigma
ist die Standardabweichung,h
ist die Höhe undmid
ist der Mittelwert.Hier ist das Ergebnis mit unterschiedlichen Höhen und Abweichungen:
quelle
Sie können cdf leicht bekommen. also pdf via cdf
quelle