scipy.special.xlog1py#

scipy.special.xlog1py(x, y, out=None) = <ufunc 'xlog1py'>#

Berechnet x*log1p(y) so, dass das Ergebnis 0 ist, wenn x = 0.

Parameter:
xarray_like

Multiplikator

yarray_like

Argument

outndarray, optional

Optionales Ausgabe-Array für die Funktionsergebnisse

Rückgabe:
zSkalar oder ndarray

Berechnetes x*log1p(y)

Hinweise

Hinzugefügt in Version 0.13.0.

Beispiele

Dieses Beispiel zeigt, wie die Funktion zur Berechnung des Logarithmus der Wahrscheinlichkeitsmassenfunktion für eine geometrische diskrete Zufallsvariable verwendet werden kann. Die Wahrscheinlichkeitsmassenfunktion der geometrischen Verteilung ist wie folgt definiert:

\[f(k) = (1-p)^{k-1} p\]

wobei \(p\) die Wahrscheinlichkeit für einen einzelnen Erfolg und \(1-p\) die Wahrscheinlichkeit für einen einzelnen Misserfolg ist und \(k\) die Anzahl der Versuche bis zum ersten Erfolg ist.

>>> import numpy as np
>>> from scipy.special import xlog1py
>>> p = 0.5
>>> k = 100
>>> _pmf = np.power(1 - p, k - 1) * p
>>> _pmf
7.888609052210118e-31

Wenn wir k als eine relativ große Zahl betrachten, kann der Wert der Wahrscheinlichkeitsmassenfunktion sehr klein werden. In solchen Fällen ist die Anwendung des Logarithmus auf die Wahrscheinlichkeitsmassenfunktion besser geeignet, da die Logarithmusfunktion die Werte auf eine Skala ändern kann, die besser zur Handhabung geeignet ist.

>>> _log_pmf = xlog1py(k - 1, -p) + np.log(p)
>>> _log_pmf
-69.31471805599453

Wir können bestätigen, dass wir einen Wert erhalten, der dem ursprünglichen Wert der Wahrscheinlichkeitsmassenfunktion nahekommt, indem wir die Exponentialfunktion des Logarithmus der Wahrscheinlichkeitsmassenfunktion anwenden.

>>> _orig_pmf = np.exp(_log_pmf)
>>> np.isclose(_pmf, _orig_pmf)
True