scipy.special.ncfdtr#
- scipy.special.ncfdtr(dfn, dfd, nc, f, out=None) = <ufunc 'ncfdtr'>#
Kumulative Verteilungsfunktion der nicht-zentralen F-Verteilung.
Die nicht-zentrale F-Verteilung beschreibt die Verteilung von,
\[Z = \frac{X/d_n}{Y/d_d}\]wobei \(X\) und \(Y\) unabhängig verteilt sind, wobei \(X\) nicht-zentral \(\chi^2\) verteilt ist mit dem Nichtzentralitätsparameter nc und \(d_n\) Freiheitsgraden, und \(Y\) \(\chi^2\) verteilt ist mit \(d_d\) Freiheitsgraden.
- Parameter:
- dfnarray_like
Freiheitsgrade der Zählerquadratsumme. Bereich (0, inf).
- dfdarray_like
Freiheitsgrade der Nennerquadratsumme. Bereich (0, inf).
- ncarray_like
Nichtzentralitätsparameter. Bereich [0, inf).
- farray_like
Quantile, d. h. die obere Integrationsgrenze.
- outndarray, optional
Optionales Ausgabe-Array für die Funktionsergebnisse
- Rückgabe:
- cdfscalar oder ndarray
Die berechnete CDF. Wenn alle Eingaben Skalare sind, ist die Rückgabe ein Float. Andernfalls ist es ein Array.
Siehe auch
ncfdtriQuantilfunktion; Umkehrung von
ncfdtrbezüglich f.ncfdtridfdUmkehrung von
ncfdtrbezüglich dfd.ncfdtridfnUmkehrung von
ncfdtrbezüglich dfn.ncfdtrincUmkehrung von
ncfdtrbezüglich nc.scipy.stats.ncfNicht-zentrale F-Verteilung.
Hinweise
Diese Funktion berechnet die CDF der nicht-zentralen F-Verteilung unter Verwendung der Boost Math C++-Bibliothek [1].
Die kumulative Verteilungsfunktion wird nach Formel 26.6.20 von [2] berechnet
\[F(d_n, d_d, n_c, f) = \sum_{j=0}^\infty e^{-n_c/2} \frac{(n_c/2)^j}{j!} I_{x}(\frac{d_n}{2} + j, \frac{d_d}{2}),\]wobei \(I\) die regularisierte unvollständige Betafunktion ist und \(x = f d_n/(f d_n + d_d)\).
Beachten Sie, dass die Argumentreihenfolge von
ncfdtrvon der der ähnlichencdf-Methode vonscipy.stats.ncfabweicht: f ist der letzte Parameter vonncfdtr, aber der erste Parameter vonscipy.stats.ncf.cdf.Referenzen
[1]The Boost Developers. “Boost C++ Libraries”. https://www.boost.org/.
[2]Milton Abramowitz und Irene A. Stegun, Hrsg. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. New York: Dover, 1972.
Beispiele
>>> import numpy as np >>> from scipy import special >>> from scipy import stats >>> import matplotlib.pyplot as plt
Plot der CDF der nicht-zentralen F-Verteilung für nc=0. Vergleich mit der F-Verteilung aus scipy.stats
>>> x = np.linspace(-1, 8, num=500) >>> dfn = 3 >>> dfd = 2 >>> ncf_stats = stats.f.cdf(x, dfn, dfd) >>> ncf_special = special.ncfdtr(dfn, dfd, 0, x)
>>> fig = plt.figure() >>> ax = fig.add_subplot(111) >>> ax.plot(x, ncf_stats, 'b-', lw=3) >>> ax.plot(x, ncf_special, 'r-') >>> plt.show()