scipy.stats.yulesimon#

scipy.stats.yulesimon = <scipy.stats._discrete_distns.yulesimon_gen object>[Quelle]#

Eine diskrete Zufallsvariable nach Yule-Simon.

Als Instanz der Klasse rv_discrete erbt yulesimon von ihr eine Sammlung generischer Methoden (siehe unten für die vollständige Liste) und ergänzt diese um detailspezifische Informationen für diese spezielle Verteilung.

Methoden

rvs(alpha, loc=0, size=1, random_state=None)

Zufallsvariaten.

pmf(k, alpha, loc=0)

Wahrscheinlichkeitsmassenfunktion.

logpmf(k, alpha, loc=0)

Logarithmus der Wahrscheinlichkeitsmassenfunktion.

cdf(k, alpha, loc=0)

Kumulative Verteilungsfunktion.

logcdf(k, alpha, loc=0)

Logarithmus der kumulativen Verteilungsfunktion.

sf(k, alpha, loc=0)

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

logsf(k, alpha, loc=0)

Logarithmus der Überlebensfunktion.

ppf(q, alpha, loc=0)

Perzentilpunktfunktion (Umkehrung von cdf — Perzentile).

isf(q, alpha, loc=0)

Umgekehrte Überlebensfunktion (Umkehrung von sf).

stats(alpha, loc=0, moments=’mv’)

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

entropy(alpha, loc=0)

(Differential-)Entropie der RV.

expect(func, args=(alpha,), loc=0, lb=None, ub=None, conditional=False)

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

median(alpha, loc=0)

Median der Verteilung.

mean(alpha, loc=0)

Mittelwert der Verteilung.

var(alpha, loc=0)

Varianz der Verteilung.

std(alpha, loc=0)

Standardabweichung der Verteilung.

interval(confidence, alpha, loc=0)

Konfidenzintervall mit gleichen Flächen um den Median.

Hinweise

Die Wahrscheinlichkeitsmassenfunktion für die yulesimon ist

\[f(k) = \alpha B(k, \alpha+1)\]

für \(k=1,2,3,...\), wobei \(\alpha>0\). Hier bezeichnet \(B\) die Funktion scipy.special.beta.

Das Ziehen von Zufallsvariaten basiert auf Seite 553, Abschnitt 6.3 von [1]. Unsere Notation wird über \(\alpha=a-1\) auf die referenzierte Logik abgebildet.

Details finden Sie im Wikipedia-Artikel [2].

Referenzen

[1]

Devroye, Luc. „Non-uniform Random Variate Generation“, (1986) Springer, New York.

Die obige Wahrscheinlichkeitsmassenfunktion ist in der „standardisierten“ Form definiert. Um die Verteilung zu verschieben, verwenden Sie den Parameter loc. Insbesondere ist yulesimon.pmf(k, alpha, loc) identisch mit yulesimon.pmf(k - loc, alpha).

Beispiele

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

Ermitteln Sie den Träger (Support)

>>> alpha = 11
>>> lb, ub = yulesimon.support(alpha)

Berechnen Sie die ersten vier Momente

>>> mean, var, skew, kurt = yulesimon.stats(alpha, moments='mvsk')

Anzeigen der Wahrscheinlichkeitsmassenfunktion (pmf)

>>> x = np.arange(yulesimon.ppf(0.01, alpha),
...               yulesimon.ppf(0.99, alpha))
>>> ax.plot(x, yulesimon.pmf(x, alpha), 'bo', ms=8, label='yulesimon pmf')
>>> ax.vlines(x, 0, yulesimon.pmf(x, alpha), colors='b', lw=5, alpha=0.5)

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

Die Verteilung einfrieren und die eingefrorene pmf anzeigen

>>> rv = yulesimon(alpha)
>>> ax.vlines(x, 0, rv.pmf(x), colors='k', linestyles='-', lw=1,
...         label='frozen pmf')
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
../../_images/scipy-stats-yulesimon-1_00_00.png

Überprüfen Sie die Genauigkeit von cdf und ppf

>>> prob = yulesimon.cdf(x, alpha)
>>> np.allclose(x, yulesimon.ppf(prob, alpha))
True

Generieren Sie Zufallszahlen

>>> r = yulesimon.rvs(alpha, size=1000)