scipy.special.betainc#
- scipy.special.betainc(a, b, x, out=None) = <ufunc 'betainc'>#
Regulierte inkomplette Betafunktion.
Berechnet die regulierte inkomplette Betafunktion, definiert als [1]
\[I_x(a, b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \int_0^x t^{a-1}(1-t)^{b-1}dt,\]für \(0 \leq x \leq 1\).
Diese Funktion ist die kumulative Verteilungsfunktion für die Betaverteilung; ihr Wertebereich ist [0, 1].
- Parameter:
- a, barray_like
Positive, reellwertige Parameter
- xarray_like
Reellwertig, so dass \(0 \leq x \leq 1\) gilt, die obere Integrationsgrenze
- outndarray, optional
Optionales Ausgabe-Array für die Funktionswerte
- Rückgabe:
- skalar oder ndarray
Wert der regulierten inkompletten Betafunktion
Siehe auch
betaBetafunktion
betaincinvInverse der regulierten inkompletten Betafunktion
betainccKomplement der regulierten inkompletten Betafunktion
scipy.stats.betaBetaverteilung
Hinweise
Der Begriff reguliert im Namen dieser Funktion bezieht sich auf die Skalierung der Funktion mit den Gammafunktions-Termen, die in der Formel gezeigt werden. Wenn nicht als reguliert qualifiziert, bezieht sich der Name inkomplette Betafunktion oft nur auf den Integral-Ausdruck, ohne die Gamma-Terme. Man kann die Funktion
betaausscipy.specialverwenden, um diese „nicht regulierte“ inkomplette Betafunktion zu erhalten, indem man das Ergebnis vonbetainc(a, b, x)mitbeta(a, b)multipliziert.betainc(a, b, x)wird als eine zweiparametrige Familie von Funktionen einer einzelnen Variablen x behandelt, anstatt als Funktion von drei Variablen. Dies wirkt sich nur auf die Grenzfällea = 0,b = 0,a = inf,b = infaus.Im Allgemeinen
\[\lim_{(a, b) \rightarrow (a_0, b_0)} \mathrm{betainc}(a, b, x)\]wird als punktweiser Grenzwert in
xbehandelt. So ist zum Beispielbetainc(0, b, 0)gleich0fürb > 0, obwohl es unbestimmt wäre, wenn man den simultanen Grenzwert(a, x) -> (0+, 0+)betrachtet.Diese Funktion wrappt die
ibetaRoutine aus der Boost Math C++ Bibliothek [2].betainchat experimentelle Unterstützung für Python Array API Standard-kompatible Backends zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie eine UmgebungsvariableSCIPY_ARRAY_API=1setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen von Backend und Gerät (oder anderen Fähigkeiten) werden unterstützt.Bibliothek
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
✅
⛔
JAX
✅
✅
Dask
✅
n/a
Siehe Unterstützung für den Array API Standard für weitere Informationen.
Referenzen
[1]NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/8.17
[2]The Boost Developers. “Boost C++ Libraries”. https://www.boost.org/.
Beispiele
Sei \(B(a, b)\) die
beta-Funktion.>>> import scipy.special as sc
Der Koeffizient in Bezug auf
gammaist gleich \(1/B(a, b)\). Auch wenn \(x=1\) ist, ist das Integral gleich \(B(a, b)\). Daher ist \(I_{x=1}(a, b) = 1\) für alle \(a, b\).>>> sc.betainc(0.2, 3.5, 1.0) 1.0
Es erfüllt \(I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))\), wobei \(F\) die hypergeometrische Funktion
hyp2f1ist.>>> a, b, x = 1.4, 3.1, 0.5 >>> x**a * sc.hyp2f1(a, 1 - b, a + 1, x)/(a * sc.beta(a, b)) 0.8148904036225295 >>> sc.betainc(a, b, x) 0.8148904036225296
Diese Funktion erfüllt die Beziehung \(I_x(a, b) = 1 - I_{1-x}(b, a)\)
>>> sc.betainc(2.2, 3.1, 0.4) 0.49339638807619446 >>> 1 - sc.betainc(3.1, 2.2, 1 - 0.4) 0.49339638807619446