scipy.stats.Normal.

logentropy#

Normal.logentropy(*, method=None)[Quelle]#

Logarithmus der differentiellen Entropie

In Bezug auf die Wahrscheinlichkeitsdichtefunktion \(f(x)\) und den Träger \(\chi\) ist die differentielle Entropie (oder einfach „Entropie“) einer kontinuierlichen Zufallsvariable \(X\)

\[h(X) = - \int_{\chi} f(x) \log f(x) dx\]

Die Definition für eine diskrete Zufallsvariable ist analog, wobei die Wahrscheinlichkeitsmassenfunktion (PMF) die Wahrscheinlichkeitsdichtefunktion (PDF) ersetzt und eine Summe über den Träger das Integral ersetzt.

logentropy berechnet den Logarithmus der differentiellen Entropie („Log-Entropie“), \(\log(h(X))\), was numerisch günstiger sein kann als die naive Implementierung (Berechnung von \(h(X)\) und anschließende Logarithmierung).

Parameter:
method{None, ‘formula’, ‘logexp’, ‘quadrature}

Die Strategie zur Auswertung der Log-Entropie. Standardmäßig (None) wählt die Infrastruktur zwischen den folgenden Optionen, in absteigender Reihenfolge der Priorität.

  • 'formula': Verwendung einer Formel für die Log-Entropie selbst

  • 'logexp': Auswertung der Entropie und anschließende Logarithmierung

  • 'quadrature': Numerische Log-Integration (oder im diskreten Fall Log-Summation) des Logarithmus des Entropieintegranden (Summand)

Nicht alle method-Optionen sind für alle Verteilungen verfügbar. Wenn die ausgewählte method nicht verfügbar ist, wird ein NotImplementedError ausgelöst.

Rückgabe:
outarray

Die Log-Entropie.

Siehe auch

entropy
logpdf

Hinweise

Die differentielle Entropie einer kontinuierlichen Verteilung kann negativ sein. In diesem Fall ist die Log-Entropie komplex mit dem Imaginärteil \(\pi\). Zur Konsistenz hat das Ergebnis dieser Funktion immer den komplexen Datentyp, unabhängig vom Wert des Imaginärteils.

Referenzen

[1]

Differential entropy, Wikipedia, https://en.wikipedia.org/wiki/Differential_entropy

Beispiele

Instanziieren Sie eine Verteilung mit den gewünschten Parametern

>>> import numpy as np
>>> from scipy import stats
>>> X = stats.Uniform(a=-1., b=1.)

Auswertung der Log-Entropie

>>> X.logentropy()
(-0.3665129205816642+0j)
>>> np.allclose(np.exp(X.logentropy()), X.entropy())
True

Für eine Zufallsvariable mit negativer Entropie hat die Log-Entropie einen Imaginärteil, der gleich np.pi ist.

>>> X = stats.Uniform(a=-.1, b=.1)
>>> X.entropy(), X.logentropy()
(-1.6094379124341007, (0.4758849953271105+3.141592653589793j))