scipy.special.ncfdtr#
-
scipy.special.ncfdtr(dfn, dfd, nc, f, выход=None) =
'ncfdtr'> # Функция распределения нецентрального F-распределения.
Нецентральное F-распределение описывает распределение
\[Z = \frac{X/d_n}{Y/d_d}\]где \(X\) и \(Y\) независимо распределены, с \(X\) распределено нецентрально \(\chi^2\) с параметром нецентральности nc и \(d_n\) степени свободы, и \(Y\) распределённый \(\chi^2\) с \(d_d\) степени свободы.
- Параметры:
- dfnarray_like
Степени свободы числителя суммы квадратов. Диапазон (0, inf).
- dfdarray_like
Степени свободы знаменателя суммы квадратов. Диапазон (0, inf).
- ncarray_like
Параметр нецентральности. Диапазон [0, inf).
- farray_like
Квантили, т.е. верхний предел интегрирования.
- выходndarray, необязательно
Необязательный выходной массив для результатов функции
- Возвращает:
- функция распределенияскаляр или ndarray
Рассчитанная CDF. Если все входные данные являются скалярными, возвращаемое значение будет float. В противном случае это будет массив.
Смотрите также
ncfdtriКвантильная функция; обратная к
ncfdtrотносительно f.ncfdtridfdОбратная функция для
ncfdtrотносительно dfd.ncfdtridfnОбратная функция для
ncfdtrотносительно dfn.ncfdtrincОбратная функция для
ncfdtrотносительно nc.scipy.stats.ncfНецентральное F-распределение.
Примечания
Эта функция вычисляет CDF нецентрального f-распределения с использованием библиотеки Boost Math C++ [1].
Интегральная функция распределения вычисляется с использованием формулы 26.6.20 из [2]:
\[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}),\]где \(I\) является регуляризованной неполной бета-функцией, и \(x = f d_n/(f d_n + d_d)\).
Обратите внимание на порядок аргументов
ncfdtrотличается от такового у похожегоcdfметодscipy.stats.ncf: f является последним параметромncfdtrно первый параметрscipy.stats.ncf.cdf.Ссылки
[1]Разработчики Boost. «Boost C++ Libraries». https://www.boost.org/.
[2]Милтон Абрамовиц и Ирен А. Стегун, ред. Справочник по математическим функциям с формулами, графиками и математическими таблицами. Нью-Йорк: Dover, 1972.
Примеры
>>> import numpy as np >>> from scipy import special >>> from scipy import stats >>> import matplotlib.pyplot as plt
Построить CDF нецентрального F-распределения для nc=0. Сравнить с F-распределением из 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()