scipy.stats.genexpon#
- scipy.stats.genexpon = <scipy.stats._continuous_distns.genexpon_gen object>[Quelle]#
Eine generalisierte exponentielle stetige Zufallsvariable.
Als Instanz der Klasse
rv_continuouserbtgenexponvon dieser eine Sammlung allgemeiner Methoden (siehe unten für die vollständige Liste) und vervollständigt sie mit Details, die für diese spezielle Verteilung spezifisch sind.Methoden
rvs(a, b, c, loc=0, scale=1, size=1, random_state=None)
Zufallsvariaten.
pdf(x, a, b, c, loc=0, scale=1)
Wahrscheinlichkeitsdichtefunktion.
logpdf(x, a, b, c, loc=0, scale=1)
Logarithmus der Wahrscheinlichkeitsdichtefunktion.
cdf(x, a, b, c, loc=0, scale=1)
Kumulative Verteilungsfunktion.
logcdf(x, a, b, c, loc=0, scale=1)
Logarithmus der kumulativen Verteilungsfunktion.
sf(x, a, b, c, loc=0, scale=1)
Überlebensfunktion (auch definiert als
1 - cdf, aber sf ist manchmal genauer).logsf(x, a, b, c, loc=0, scale=1)
Logarithmus der Überlebensfunktion.
ppf(q, a, b, c, loc=0, scale=1)
Perzentilpunktfunktion (Umkehrung von
cdf— Perzentile).isf(q, a, b, c, loc=0, scale=1)
Umgekehrte Überlebensfunktion (Umkehrung von
sf).moment(order, a, b, c, loc=0, scale=1)
Nichtzentrales Moment der angegebenen Ordnung.
stats(a, b, c, loc=0, scale=1, moments=’mv’)
Mittelwert(‚m‘), Varianz(‚v‘), Schiefe(‚s‘) und/oder Kurtosis(‚k‘).
entropy(a, b, c, 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=(a, b, c), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)
Erwartungswert einer Funktion (einer Variablen) bezüglich der Verteilung.
median(a, b, c, loc=0, scale=1)
Median der Verteilung.
mean(a, b, c, loc=0, scale=1)
Mittelwert der Verteilung.
var(a, b, c, loc=0, scale=1)
Varianz der Verteilung.
std(a, b, c, loc=0, scale=1)
Standardabweichung der Verteilung.
interval(confidence, a, b, c, loc=0, scale=1)
Konfidenzintervall mit gleichen Flächen um den Median.
Hinweise
Die Wahrscheinlichkeitsdichtefunktion für
genexponist\[f(x, a, b, c) = (a + b (1 - \exp(-c x))) \exp(-a x - b x + \frac{b}{c} (1-\exp(-c x)))\]für \(x \ge 0\), \(a, b, c > 0\).
genexponnimmt \(a\), \(b\) und \(c\) als Formparameter.Die obige Wahrscheinlichkeitsdichte ist in der „standardisierten“ Form definiert. Verwenden Sie die Parameter
locundscale, um die Verteilung zu verschieben und/oder zu skalieren. Insbesondere istgenexpon.pdf(x, a, b, c, loc, scale)identisch äquivalent zugenexpon.pdf(y, a, b, c) / scalemity = (x - loc) / scale. Beachten Sie, dass das Verschieben des Ortes einer Verteilung keine „nicht-zentrale“ Verteilung daraus macht; nicht-zentrale Verallgemeinerungen einiger Verteilungen sind in separaten Klassen verfügbar.Referenzen
H.K. Ryu, „An Extension of Marshall and Olkin’s Bivariate Exponential Distribution“, Journal of the American Statistical Association, 1993.
N. Balakrishnan, Asit P. Basu (Herausgeber), The Exponential Distribution: Theory, Methods and Applications, Gordon and Breach, 1995. ISBN 10: 2884491929
Beispiele
>>> import numpy as np >>> from scipy.stats import genexpon >>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots(1, 1)
Ermitteln Sie den Träger (Support)
>>> a, b, c = 9.13, 16.2, 3.28 >>> lb, ub = genexpon.support(a, b, c)
Berechnen Sie die ersten vier Momente
>>> mean, var, skew, kurt = genexpon.stats(a, b, c, moments='mvsk')
Zeigen Sie die Wahrscheinlichkeitsdichtefunktion (
pdf) an>>> x = np.linspace(genexpon.ppf(0.01, a, b, c), ... genexpon.ppf(0.99, a, b, c), 100) >>> ax.plot(x, genexpon.pdf(x, a, b, c), ... 'r-', lw=5, alpha=0.6, label='genexpon 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
pdfan>>> rv = genexpon(a, b, c) >>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
Überprüfen Sie die Genauigkeit von
cdfundppf>>> vals = genexpon.ppf([0.001, 0.5, 0.999], a, b, c) >>> np.allclose([0.001, 0.5, 0.999], genexpon.cdf(vals, a, b, c)) True
Generieren Sie Zufallszahlen
>>> r = genexpon.rvs(a, b, c, 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()