scipy.stats.trapezoid#

scipy.stats.trapezoid = <scipy.stats._continuous_distns.trapezoid_gen Objekt>[Quelle]#

Eine trapezförmige kontinuierliche Zufallsvariable.

Als Instanz der rv_continuous-Klasse erbt trapezoid von ihr eine Sammlung allgemeiner Methoden (siehe unten für die vollständige Liste) und vervollständigt diese mit Details, die spezifisch für diese spezielle Verteilung sind.

Methoden

rvs(c, d, loc=0, scale=1, size=1, random_state=None)

Zufallsvariaten.

pdf(x, c, d, loc=0, scale=1)

Wahrscheinlichkeitsdichtefunktion.

logpdf(x, c, d, loc=0, scale=1)

Logarithmus der Wahrscheinlichkeitsdichtefunktion.

cdf(x, c, d, loc=0, scale=1)

Kumulative Verteilungsfunktion.

logcdf(x, c, d, loc=0, scale=1)

Logarithmus der kumulativen Verteilungsfunktion.

sf(x, c, d, loc=0, scale=1)

Überlebensfunktion (auch definiert als 1 - cdf, aber sf ist manchmal genauer).

logsf(x, c, d, loc=0, scale=1)

Logarithmus der Überlebensfunktion.

ppf(q, c, d, loc=0, scale=1)

Perzentilpunktfunktion (Umkehrung von cdf — Perzentile).

isf(q, c, d, loc=0, scale=1)

Umgekehrte Überlebensfunktion (Umkehrung von sf).

moment(order, c, d, loc=0, scale=1)

Nichtzentrales Moment der angegebenen Ordnung.

stats(c, d, loc=0, scale=1, moments=’mv’)

Mittelwert(‚m‘), Varianz(‚v‘), Schiefe(‚s‘) und/oder Kurtosis(‚k‘).

entropy(c, d, loc=0, scale=1)

(Differential-)Entropie der RV.

fit(data)

Parameterschätzungen für generische Daten. Siehe scipy.stats.rv_continuous.fit für eine detaillierte Dokumentation der Schlüsselwortargumente.

expect(func, args=(c, d), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)

Erwartungswert einer Funktion (einer Variablen) bezüglich der Verteilung.

median(c, d, loc=0, scale=1)

Median der Verteilung.

mean(c, d, loc=0, scale=1)

Mittelwert der Verteilung.

var(c, d, loc=0, scale=1)

Varianz der Verteilung.

std(c, d, loc=0, scale=1)

Standardabweichung der Verteilung.

interval(confidence, c, d, loc=0, scale=1)

Konfidenzintervall mit gleichen Flächen um den Median.

Hinweise

Die Trapezverteilung kann durch eine ansteigende Linie von loc bis (loc + c*scale), dann konstant bis (loc + d*scale) und dann abfallend von (loc + d*scale) bis (loc+scale) dargestellt werden. Dies definiert die Trapezbasis von loc bis (loc+scale) und die flache Oberseite von c bis d proportional zur Position entlang der Basis, wobei 0 <= c <= d <= 1 gilt. Wenn c=d, ist dies äquivalent zu triang mit denselben Werten für loc, scale und c. Die Methode von [1] wird zur Berechnung von Momenten verwendet.

trapezoid verwendet \(c\) und \(d\) als Formparameter.

Die obige Wahrscheinlichkeitsdichtefunktion ist in der "standardisierten" Form definiert. Um die Verteilung zu verschieben und/oder zu skalieren, verwenden Sie die Parameter loc und scale. Insbesondere ist trapezoid.pdf(x, c, d, loc, scale) identisch gleich trapezoid.pdf(y, c, d) / scale mit y = (x - loc) / scale. Beachten Sie, dass das Verschieben des Ortes einer Verteilung diese nicht zu einer "nicht-zentralen" Verteilung macht; nicht-zentrale Verallgemeinerungen einiger Verteilungen sind in separaten Klassen verfügbar.

Die Standardform liegt im Bereich [0, 1] mit c als Modus. Der Orts-Parameter verschiebt den Startpunkt zu loc. Der Skalierungs-Parameter ändert die Breite von 1 zu scale.

Referenzen

[1]

Kacker, R.N. und Lawrence, J.F. (2007). Trapezoidal and triangular distributions for Type B evaluation of standard uncertainty. Metrologia 44, 117-127. DOI:10.1088/0026-1394/44/2/003

Beispiele

>>> import numpy as np
>>> from scipy.stats import trapezoid
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)

Ermitteln Sie den Träger (Support)

>>> c, d = 0.2, 0.8
>>> lb, ub = trapezoid.support(c, d)

Berechnen Sie die ersten vier Momente

>>> mean, var, skew, kurt = trapezoid.stats(c, d, moments='mvsk')

Zeigen Sie die Wahrscheinlichkeitsdichtefunktion (pdf) an

>>> x = np.linspace(trapezoid.ppf(0.01, c, d),
...                 trapezoid.ppf(0.99, c, d), 100)
>>> ax.plot(x, trapezoid.pdf(x, c, d),
...        'r-', lw=5, alpha=0.6, label='trapezoid pdf')

Alternativ kann das Verteilungsobjekt (als Funktion) aufgerufen werden, um die Form-, Orts- und Skalierungsparameter festzulegen. Dies gibt ein „eingefrorenes“ RV-Objekt zurück, das die angegebenen Parameter beibehält.

Frieren Sie die Verteilung ein und zeigen Sie die eingefrorene pdf an

>>> rv = trapezoid(c, d)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

Überprüfen Sie die Genauigkeit von cdf und ppf

>>> vals = trapezoid.ppf([0.001, 0.5, 0.999], c, d)
>>> np.allclose([0.001, 0.5, 0.999], trapezoid.cdf(vals, c, d))
True

Generieren Sie Zufallszahlen

>>> r = trapezoid.rvs(c, d, size=1000)

Und vergleichen Sie das Histogramm

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
../../_images/scipy-stats-trapezoid-1.png