scipy.special.stdtrit#
- scipy.special.stdtrit(df, p, out=None) = <ufunc 'stdtrit'>#
Das p-te Quantil der Student-t-Verteilung.
Diese Funktion ist die Umkehrfunktion der kumulativen Verteilungsfunktion (CDF) der Student-t-Verteilung und gibt t zurück, so dass stdtr(df, t) = p ist.
Gibt das Argument t zurück, so dass stdtr(df, t) gleich p ist.
- Parameter:
- dfarray_like
Freiheitsgrade
- parray_like
Wahrscheinlichkeit
- outndarray, optional
Optionales Ausgabe-Array für die Funktionsergebnisse
- Rückgabe:
- tSkalar oder ndarray
Wert von t, so dass
stdtr(df, t) == p
Siehe auch
stdtrStudent t CDF
stdtridfUmkehrfunktion von stdtr in Bezug auf df
scipy.stats.tStudent-t-Verteilung
Hinweise
Die Student-t-Verteilung ist auch als
scipy.stats.tverfügbar. Das direkte Aufrufen vonstdtritkann die Leistung im Vergleich zurppf-Methode vonscipy.stats.tverbessern (siehe letztes Beispiel unten).stdtritunterstützt neben NumPy experimentell auch Backends, die mit dem Python Array API Standard kompatibel sind. Bitte testen Sie diese Funktionen, indem Sie die UmgebungsvariableSCIPY_ARRAY_API=1setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente übergeben. Die folgenden Kombinationen von Backend und Gerät (oder anderer Fähigkeit) 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.
Beispiele
stdtritrepräsentiert die Umkehrfunktion der Student-t-Verteilung CDF, die alsstdtrverfügbar ist. Hier berechnen wir die CDF fürdfbeix=1.stdtritgibt dann1bis auf Fließkommafehler zurück, gegeben denselben Wert für df und den berechneten CDF-Wert.>>> import numpy as np >>> from scipy.special import stdtr, stdtrit >>> import matplotlib.pyplot as plt >>> df = 3 >>> x = 1 >>> cdf_value = stdtr(df, x) >>> stdtrit(df, cdf_value) 0.9999999994418539
Stellen Sie die Funktion für drei verschiedene Freiheitsgrade dar.
>>> x = np.linspace(0, 1, 1000) >>> parameters = [(1, "solid"), (2, "dashed"), (5, "dotted")] >>> fig, ax = plt.subplots() >>> for (df, linestyle) in parameters: ... ax.plot(x, stdtrit(df, x), ls=linestyle, label=f"$df={df}$") >>> ax.legend() >>> ax.set_ylim(-10, 10) >>> ax.set_title("Student t distribution quantile function") >>> plt.show()
Die Funktion kann für mehrere Freiheitsgrade gleichzeitig berechnet werden, indem ein NumPy-Array oder eine Liste für df übergeben wird.
>>> stdtrit([1, 2, 3], 0.7) array([0.72654253, 0.6172134 , 0.58438973])
Es ist möglich, die Funktion an mehreren Punkten für mehrere verschiedene Freiheitsgrade gleichzeitig zu berechnen, indem Arrays für df und p mit Formen, die für Broadcasting geeignet sind, übergeben werden. Berechnen Sie
stdtritan 4 Punkten für 3 Freiheitsgrade, was zu einem Array der Form 3x4 führt.>>> dfs = np.array([[1], [2], [3]]) >>> p = np.array([0.2, 0.4, 0.7, 0.8]) >>> dfs.shape, p.shape ((3, 1), (4,))
>>> stdtrit(dfs, p) array([[-1.37638192, -0.3249197 , 0.72654253, 1.37638192], [-1.06066017, -0.28867513, 0.6172134 , 1.06066017], [-0.97847231, -0.27667066, 0.58438973, 0.97847231]])
Die t-Verteilung ist auch als
scipy.stats.tverfügbar. Das direkte Aufrufen vonstdtritkann wesentlich schneller sein als das Aufrufen derppf-Methode vonscipy.stats.t. Um dieselben Ergebnisse zu erhalten, muss die folgende Parametrisierung verwendet werden:scipy.stats.t(df).ppf(x) = stdtrit(df, x).>>> from scipy.stats import t >>> df, x = 3, 0.5 >>> stdtrit_result = stdtrit(df, x) # this can be faster than below >>> stats_result = t(df).ppf(x) >>> stats_result == stdtrit_result # test that results are equal True