Normal#
- class scipy.stats.Normal(mu=None, sigma=None, **kwargs)[Quelle]#
Normalverteilung mit vorgegebenem Mittelwert und Standardabweichung.
Die Wahrscheinlichkeitsdichtefunktion der Normalverteilung ist
\[f(x) = \frac{1}{\sigma \sqrt{2 \pi}} \exp { \left( -\frac{1}{2}\left( \frac{x - \mu}{\sigma} \right)^2 \right)}\]für \(x \in (-\infty, \infty)\). Diese Klasse akzeptiert eine Parametrisierung:
mufür \(\mu \in (-\infty, \infty)\),sigmafür \(\sigma \in (0, \infty)\).- Parameter:
- tolpositive float, optional
Die gewünschte relative Genauigkeit der Berechnungen. Wenn nicht angegeben, können die Berechnungen schneller sein; wenn angegeben, ist es wahrscheinlicher, dass die Berechnungen die gewünschte Genauigkeit erreichen.
- validation_policy{None, “skip_all”}
Gibt die Stufe der Eingabevalidierung an. Wenn nicht angegeben, wird die Eingabevalidierung durchgeführt, um ein angemessenes Verhalten in Randfällen (z. B. Parameter außerhalb der Domäne, Argument außerhalb der Verteilungsgrenzen usw.) sicherzustellen und die Konsistenz von Ausgabedtypes, Formen usw. zu verbessern. Übergeben Sie
'skip_all', um den Rechenaufwand dieser Prüfungen zu vermeiden, wenn grobe Ergebnisse akzeptabel sind.- cache_policy{None, “no_cache”}
Gibt den Umfang an, in dem Zwischenergebnisse zwischengespeichert werden. Wenn nicht angegeben, werden Zwischenergebnisse einiger Berechnungen (z. B. Verteilungsgrenzen, Momente usw.) zwischengespeichert, um die Leistung zukünftiger Berechnungen zu verbessern. Übergeben Sie
'no_cache', um den vom Klasseninstanz reservierten Speicher zu reduzieren.
- Attribute:
- Alle Parameter sind als Attribute verfügbar.
Methoden
support()Unterstützungsbereich der Zufallsvariable
plot([x, y, t, ax])Zeichnet eine Funktion der Verteilung.
sample([shape, method, rng])Zufällige Stichprobe aus der Verteilung.
moment([order, kind, method])Roh-, zentrales oder Standardmoment positiver ganzzahliger Ordnung.
mean(*[, method])Mittelwert (rohes erstes Moment um den Ursprung)
median(*[, method])Median (50. Perzentil)
mode(*[, method])Modus (wahrscheinlichster Wert)
variance(*[, method])Varianz (zweites zentrales Moment)
standard_deviation(*[, method])Standardabweichung (Quadratwurzel des zweiten zentralen Moments)
skewness(*[, method])Schiefe (standardisiertes drittes Moment)
kurtosis(*[, method, convention])Kurtosis (standardisiertes viertes Moment)
pdf(x, /, *[, method])Wahrscheinlichkeitsdichtefunktion
logpdf(x, /, *[, method])Logarithmus der Wahrscheinlichkeitsdichtefunktion
cdf(x[, y, method])Kumulative Verteilungsfunktion
icdf(p, /, *[, method])Inverse der kumulativen Verteilungsfunktion.
ccdf(x[, y, method])Komplementäre kumulative Verteilungsfunktion
iccdf(p, /, *[, method])Inverse der komplementären kumulativen Verteilungsfunktion.
logcdf(x[, y, method])Logarithmus der kumulativen Verteilungsfunktion
ilogcdf(logp, /, *[, method])Inverse des Logarithmus der kumulativen Verteilungsfunktion.
logccdf(x[, y, method])Logarithmus der komplementären kumulativen Verteilungsfunktion
ilogccdf(logp, /, *[, method])Inverse des Logarithmus der komplementären kumulativen Verteilungsfunktion.
entropy(*[, method])Differentielle Entropie
logentropy(*[, method])Logarithmus der differentiellen Entropie
Siehe auch
Hinweise
Die folgenden Abkürzungen werden im gesamten Dokument verwendet.
PDF: Wahrscheinlichkeitsdichtefunktion
CDF: Kumulative Verteilungsfunktion
CCDF: Komplementäre CDF
Entropie: Differentielle Entropie
Log-F: Logarithmus von F (z. B. Log-CDF)
Inverse F: Inverse Funktion von F (z. B. Inverse CDF)
Die API-Dokumentation dient der Beschreibung der API und nicht als statistisches Nachschlagewerk. Es wird versucht, auf dem für die Nutzung der Funktionalität erforderlichen Niveau korrekt zu sein, nicht mathematisch rigoros. Zum Beispiel können Stetigkeit und Differenzierbarkeit stillschweigend angenommen werden. Für präzise mathematische Definitionen konsultieren Sie Ihr bevorzugtes mathematisches Werk.
Beispiele
Um die Verteilungsklasse zu verwenden, muss sie mit Schlüsselwortparametern instanziiert werden, die einer der akzeptierten Parametrisierungen entsprechen.
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy import stats >>> from scipy.stats import Normal >>> X = Normal(mu=-0.81, sigma=0.69)
Zur Vereinfachung kann die Methode
plotverwendet werden, um die Dichte und andere Funktionen der Verteilung zu visualisieren.>>> X.plot() >>> plt.show()
Der Unterstützungsbereich der zugrundeliegenden Verteilung ist über die Methode
supportverfügbar.>>> X.support() (np.float64(-inf), np.float64(inf))
Die numerischen Werte von Parametern, die allen Parametrisierungen zugeordnet sind, sind als Attribute verfügbar.
>>> X.mu, X.sigma (np.float64(-0.81), np.float64(0.69))
Um die Wahrscheinlichkeitsdichte/-massefunktion der zugrundeliegenden Verteilung am Argument
x=-1.13auszuwerten>>> x = -1.13 >>> X.pdf(x), X.pmf(x) (np.float64(0.5192263911374636), np.float64(0.0))
Die kumulative Verteilungsfunktion, ihr Komplement und der Logarithmus dieser Funktionen werden ähnlich ausgewertet.
>>> np.allclose(np.exp(X.logccdf(x)), 1 - X.cdf(x)) True
Die Umkehrfunktionen dieser Funktionen bezüglich des Arguments
xsind ebenfalls verfügbar.>>> logp = np.log(1 - X.ccdf(x)) >>> np.allclose(X.ilogcdf(logp), x) True
Beachten Sie, dass Verteilungsfunktionen und ihre Logarithmen auch Zwei-Argument-Versionen für die Arbeit mit der Wahrscheinlichkeitsmasse zwischen zwei Argumenten haben. Das Ergebnis ist tendenziell genauer als die naive Implementierung, da es subraktive Auslöschung vermeidet.
>>> y = -0.56 >>> np.allclose(X.ccdf(x, y), 1 - (X.cdf(y) - X.cdf(x))) True
Es gibt Methoden zur Berechnung von Maßen für zentrale Tendenz, Streuung, höhere Momente und Entropie.
>>> X.mean(), X.median(), X.mode() (np.float64(-0.81), np.float64(-0.81), np.float64(-0.81))
>>> X.variance(), X.standard_deviation() (np.float64(0.4760999999999999), np.float64(0.69))
>>> X.skewness(), X.kurtosis() (np.float64(0.0), np.float64(3.0))
>>> np.allclose(X.moment(order=6, kind='standardized'), ... X.moment(order=6, kind='central') / X.variance()**3) True
>>> np.allclose(np.exp(X.logentropy()), X.entropy()) True
Pseudozufällige Stichproben können mit
sampleaus der zugrundeliegenden Verteilung gezogen werden.>>> X.sample(shape=(4,)) array([-0.79332831, -0.61826103, -0.74610898, -0.78086839]) # may vary